Você está na página 1de 95
LOGICA DE PROGRAMACAO INDICE AULA 01 - INTRODUGAO A LOGICA DE PROGRAMACAO OBJETIVOS DA AULA. ESTRUTURA DO CURSO. L6GICA DE PROGRAMAS. ‘TOMADAS DE DECISAO. ORGANIZANDO AS INSTRUGOES non LINGUAGEM DE PROGRAMAGAO. PSEUDOCEDICO... -MODELO DE PSEUDOCODIGO PADRAO.. ExERcIClos. AULA 02 ~- LOGICA DE PROGRAMAGAO- ‘TESTES DE MESA E DIAGRAMAS DE BLOCOS.. OBJETIVOS DA AULA. © QUE VAMOS FAZER. AULA 03 ~ TIPOS DE DADOS, CONSTANTES E VARIAVEIS.. OBJETIVOS DA AULA.. (0 QUE VAMOS FAZER. ENTENDENDO A MEMORIA RAM. MAS ENTAO, 0 QUE SAO AS VARIAVEI DECLARANDO VARIAVEIS... CONHECENDO 0S TIPOS DAS VARIAVE! MAS E AS CONSTANTES, 0 QUE SAO ELAS? AULA 04- OPERADORES ARITMETICOS, RELACIONAIS E LOGICOS ... OBJETIVOS DA AULA.. ‘0 QUE VAMOS FAZER ‘0 QUE sAo 0s oPERADORES: ‘CONHECENDO OS OPERADORES ARITMETICOS.. HIERARQUIA DAS OPERACOES ARITMETICAS APP” “IDENDO SOBRE 0S OPERADORES RELACIONAIS /ANALISANDO OS OPERADORES LOGICOS. EXERCICIOS:. — AULA 05 - ESTRUTURAS DE DECISAO E REPETICAO. OBJETIVOS DA AULA. (© QUE VAMOS FAZER COMANDO DE DECISAO. COMANDO DE DECISAOSE. ComANDO DE DECISAO SEI COMANDO DE REPETIGAO. COMANDO DE REPETICAO FOR. COMANDO DE REPETIGAO WHILE By) escooenepencao AULA 06 - ENTENDENDO A PROGRAMACAO, ORIENTADA A OBJETOS QUE VAMOS path O.CONCEITO DE CLASSE wan O CONCEITO DE OBJETOS... Ei HERANCASIMPLESE MULTIPLA... ‘USAR E CONVERSAR COM OBJETOS... c ENCAPSULAMENTO. EXERCICIOS. (0 QUE E0 SMALL BASIC) nnn (CONHECENDO A INTELLISENSE.... BAIXANDO E INSTALANDO O SMALL BASIC... INICIANDO A INSTALAGAO wm PRIMEIROS CONTATOS COM 0 SMALL BASIC... FAZENDO USO DO PROGRAMA crv ‘SALVANDO PROJETOS.. INICIANDO A PRATICA. DICAS £ CURIOSIDADES.... a FAGA VOCE MESMO! . AULA 08 ~ ESTRUTURAS DE DECISAO E REPETICAO N NA PRATICA.. OBJETIVOS DA AULA. (0 QUE VAMOs FAZER. ESTRUTURA DE DECISAO SE. COMANDO DE REPETICAO FOR... (COMANDO DE REPETIGAO WHILE momo FAGA VOCE MESMO! nue AULA 09 ~ DESENHANDO com SMALL BASIC. = OBJETIVOS DA AULA (QUE VAMOS FAZER... CONHECENDO A BIBLIOTECA GRAFICA DO SMALL BASIC... DESENHANDO FORMAS CIRCULARES E RETANGULARES.. CCRIANDO FORMAS SEM PREENCHIMENTOreweveemeeonons ‘TRABALHANDO COM AS CORES DA BIBLIOTECA GRAFICA.. APRENDENDO SOBRE A TARTARUGA (TURTLE). FAA vocé MESMO!.. AULA 10- CRIANDO E USANDO SUB-ROTINAS... OBJETIVOS DA AULA. (0 QUE VAMOS FAZER UTILIZANDO SUB-ROTINAS.. CAPTURANDO EVENTOS DO MOUSE E TECLADO. CCRIANDO UM PROGRAMA PARA DESENHAR.. aga voce MESMO!.. AULA 11 - DESENVOLVENDO UTI LITARIOS ¢ ‘COM CODIGOS AVANCADOS OBJETIVOS DA AULA... (0 QUE VAMOS FAZER. ELABORANDO UM CONVERSOR DE MOEDAS. (OBJETOS SEGUINDO OS CLIQUES DO MOUSE. FAGA VOCE MESMO.. AULA 12 ATIVIDADES INTERESSANTES NO SMALL BASIC OBJETIVOS DA AULA. EXECUTANDO SONS NATIVOS DO SMALL BASIC.. CCRIANDO UM PROGRAMA QUE PERMITE AO USUARIO ESCUTAR A MUSICA QUE ELE. use = PUBLICANDO PROJETOS NA WEB... IMPORTANDO PROJETOS DA INTERNET on JOGOS PRONTOS PARA ESTUDO.. ‘AS 20 LINGUAGENS MAIS POPULARES DA ATUALIDADE (INFORMAGOES COMPLEMENTARES) No QUE VocE SE TORNOU: FAGA VocE MESMO!. GABARITO. 1 y y LOGICA DE PROGRAMACAO AULA 07 - INSTALANDO E CONHECENDO O MICROSOFT SMALL BASIC. OBJETIVOS DA AULA wren = = : : OQUE VAMOS FAZER nnn = Cee Le, = Le | ‘O conteido deste método fl produ pela equipe de deservohimento da detentore dos deitos autora, a quem so reservados todos or iret, Neshuma parte derta publeagso pode ser reproduida ou transmit, seam quasfrem os meios empregados: eleténios, mecca, ftogrfcs, sem autoragso previa por esto ta apostla publica nomes comercase marcas repitradas de produtospertencentes adivesas compan, somente para fins eto, ‘educaciona em benefice dos propietris das marcas, sem nenhuma tengo de ating seus diets. Fale conoscol ‘Sugestes, sypstos errs ou divas referents a conti desta aposta devero ser encaminhados para o email sac@ensinointeratvo com.b+ oa OBJETIVOS DA AULA + Conhecer a estrutura do curso; + Aprender o que é Logica de Programagao; + Tomadas de decisio; + Organizagao de instrugdes; ‘+ Exemplos de linguagem de programagao; + Pseudocédigo. ESTRUTURA DO CURSO Nosso curso é composto por 12 aulas, sendo elas in- terativas e apostiladas. Trabalharemos com: testes de mesa e diagramas de blocos, tipos de dados, constan- tes e varidveis, operadores relacionais, estrutura de decisdo e repeti¢ao, programagao orientada a objetos, ‘Small basic, sub-rotinas e cédigos avangados. Sempre utilizaremos exemplos praticos que facilitardo 0 en- tendimento do conceito e, no decorrer dos assuntos, sero realizados exercicios para a maior fixacdo. Tam- ‘bém temos as as avaliagdes que, no final da aula, de- finirdo se vocé obteve o desempenho necessério para continuar. Agora que jé sabemos qual sera o andamen- to do nosso curso, podemos comegar a ver 0 que nos interessa, , LOGICA DE PROGRAMACAO Aula 01| Introducao a Logica de Programacao LOGICA DE PROGRAMACAO Logica de Programagao é a base para que possamos entender linguagens de programacZo, além de qual- quer outra estrutura que envolva dados que neces: tem ser estruturados. Existem alguns itens que compée a légica e que me- recem ser explicados separadamente para que, juntas, as explicagdes revelem exatamente o que estamos te tando mostrar. Pois bem, as instrugdes passadas ao sistema do computador recebem 0 nome de algoritmos, que sio 0s passos que contém cada a¢ao que deverd ser reali- zada. Para organiz4-los, temos uma sequéncia légica a seguir, que se baseia em regras e faz, assim, tudo sair corretamente. Veja 0 exemplo a seguir para que fique mais clara nossa explicacao: Pegar obi } Colocar a frigideira no fogao; } Colocar o bife dentro do frigideira; Ascender 0 fogo do fogao; } Esperar o bife ficar pronto; Apagar o fogo; } Retirar o bife da frigidetra; Colocar a frigideira dentro da pia. jee LOGICA DE PROGRAMACAO Essa é uma estrutura correta, com os algoritmos em uma sequéncia légica, desempenhado a atividade corretamente. Agora, imagine se algum desses passos fosse feito na hora errada ou até mesmo nem fosse fei- to. Veja: b Pegar o bife; } Colocar a frigideira no fogao; } Colocar o bife dentro do frigideira; + Esperar o bife ficar pronto; Apagar o fog 5 + Retirar o bife da frigideira; } Colocar a frigideira dentro da pia, Aparentemente esta tudo como antes, mas veja que © passo “Ascender 0 fogo do fogao", nio fol indicado. Isso com certeza vai atrapalhar o resultado final, nao é ‘mesmo? Afinal, sem o fogo, nao tem como o bife ficar pronto. Em programagao nao é diferente da vida real. Se pularmos uma parte da instrucdo, ou a colocarmos no lugar errado, algo que ndo querfamos ou esperava- mos, iré acontecer. Que tal um exemplo mais préximo do que iremos encontrar em nossos trabalhos? Imagine que temos que receber dois valores, multiplicd-los e exibir o re- sultado obtido. Veja como ficaria um programa com essa finalidade: + Receber o PRIMEIRO val + Receber o SEGUNDO valor; + Multiplicar o PRIMEIRO pelo SEGUNDO; ‘+ Informar o resultado obtido. Simples, ndo é mesmo? Mas é importante deixar claro que nao seré sempre assim. Existem programas muito complexos e que necessitam de limitadores para que nao acabem se misturando e impossibilitan- do a compreensao da instrugao. Os responsaveis por essa separa¢ao sdo as palavras INICIO e FIM. Veja na pratica como funcionam. Em uma escola, os alunos realizam duas provas no final de cada semestre, de modo que a soma dos resul- tados dividida por dois dé a média que o aprovaré ou no. Ento, o programa seré assim: + INICIO; + Receber a PRIMEIRA nota do aluno; + Receber a SEGUNDA nota do alun + SOMA ¢ igual a PRIMEIRA nota mais a SEGUN- DA nota; + MEDIA é igual a SOMA divi ida por 2; TOMADAS DE DECISAO Até agora, vimos como organizar tarefas simples em que existia apenas um caminho, ou seja, nao havia mais de uma alternativa. Acontece que na programa- ‘sao e também na vida real, muitas vezes nos depara- ‘mos com uma encruzilhada, um ponto em que temos que seguir um caminho ou outro, No que diz respeito a programacao, chamamos esse momento de tomada de decisdo. Nesse ponto, temos que escolher um caminho a seguir dada uma situacdo. Vamos ver um exemplo pratico: INICI + Receber a PRIMEIRA nota do alun ‘+ Receber a SEGUNDA nota do aluno; + SOMA ¢ igual & PRIMEIRA nota mais a SEGUN- DA nota; + MEDIA é igual a SOMA dividida por 2; * Sea MEDIA for maior ou igual a7 + Apresentar ao aluno a média; + Informar que ele foi APROVADO; + Sea MEDIA for menor que 7 + Apresentar ao aluno a média; + _Informar que ele foi REPROVAD\ + FIM; Note que, assim, quando uma opgao € seguida, a outra passa a ser ignorada, dependendo do resultado da MEDIA. Essa é uma deciséo que sera tomada de- pendendo da situagdo, e que o programa faz automa- ticamente. Mais adiante veremos outros moldes dessa ferramenta. ORGANIZANDO AS INSTRUCGES Nés sabemos que organizacao é algo bom em qual- quer lugar e, em programacao, nao teria como ser di- ferente. Até agora 6 falamos de algoritmos simples e com poucas instrugées, mas isso ndo sera sempre as- sim, Por isso, aprender a organizar as coisas desde o in{cio é fundamental. Vamos comegar imaginando uma tarefa um pouco mais complexa, Vamos descrever os procedimentos de ‘um caixa de supermercado. Comegarei falando sobre. as tarefas de maneira geral, sem detalhamentos: Cumprimentar 0 cliente; Registrar a venda do produto; Informar o valor total ao cliente; Receber o pagamento; | : : 1 LOGICA DE PROGRAMACAO. ‘Agora, imagine como seria um programa que exe- cute essas tarefas. Ele nao poderia ser simples. Entao, veja como uma a¢éo aparentemente simples, possui detalhes que passam despercebidos: TAREFA1 Cumprimentar o cliente INICIO; + Se existir cliente na fila, entao: + Avisar ao cliente que 0 caixa esta aberto; + Sea hora estiver entre 8:00 e 12:00 dizer Bom Dia; + Seahora estiver entre 12:01 e 18:00 dizer Boa Tarde; * Se ahora estiver entre 18:01 e 7:59 dizer Boa Noite; * Se nao existir cliente na fila, aguardar pelo pré- 0. FIM; Note que, nessa primeira tarefa, programamos 0 ato de “cumprimentar o cliente”, Perceba que, logo no comego, o programa toma uma decisdo. Se existir um cliente na fila, ele seguira determinada parte das ins- trugdes, porém, se ndo existir, fard outra. Pois bem, existindo um cliente na fila, 0 programa passa para o bloco seguinte em que também ter que tomar uma decisao. Vamos analisar! Depois de avisar que o caixa est aberto, as instru- ges irdo verificar que horas s4o para cumprimentar corretamente o cliente, com Bom Dia, Boa Tarde ou Boa Noite. ‘TAREFA2 Registrar a venda do produto INICIO; + Existe algum produto no carrinho? + SIM + Pegar o produ + Procurar na embalagem onde est 0 cédigo de barras; + Apontar para o leitor 0 cédigo de barras e aguardar que o produto seja registrado; + _ Reinicie a tarefa desde a primeira linha; + NAO + Terminar a tarefa e passar para préxim: + FIM; Nessa segunda tarefa, temos um novo e interessan- te ponto que chamamos de Lago, ou Looping, o qual verifica a existéncia de produtos no carrinho de com- pras. Se sim, todo o processo descrito no bloco SIM do ) programa deve ser executado, de modo que, enquan- to essa resposta for a mesma, o bloco se repetir4, por isso, recebe esse nome. Abaixo, temos um exemplo de como essa ferramenta acontece, num caso em que te- mos 2 produtos: + Colocar 2 produtos da tela e ir fazendo a sequ- éncia descrita: + Existe produto no carrinho? + Sim. + Entio: + Pegar o produto; + Procurar na embalagem onde est 0 c6- digo de barras; + Apontar para o leitor o cédigo de barras e aguardar que o produto seja registra- do; + Reinicie a tarefa desde a primeira linha; * Procurar na embalagem onde est o cédi- go de barras; + Apontar para o leitor o cédigo de barras ‘e aguardar que o produto seja registrado; + Reinicie a tarefa desde a primeira linha; + Existe produto no carrinho? + Nao. + Entio: ‘+ Terminar a tarefa e passar para préxima; Esse recurso de Looping sera uma ferramenta valio- sfssima em sua vida de programador e vocé iré utilizé -la diversas vezes. ‘TAREFA3 Informar o valor total ao cliente = INICIO; ‘© Observar na tela o VALOR TOTAL; + Informar ao cliente o VALOR TOTAL; + FIM; Essa tarefa é muito, muito simples mesmo. Entao, nem precisamos entrar em detalhes a respeito dela. Vamos para a préxima! Essa sim é a mais desafiadora até agora ‘TAREFA4 Receber 0 pagamento = INICIO; = Receber do cliente um DETERMINANDO VALOR; + Se o DETERMINANDO VALOR for igual ao VALOR TOTAL, entao: + Fechara venda; = LOGICA DE PROGRAMACAO + Seo DETERMINANDO VALOR for menor que o VALOR TOTAL, entao: ‘+ Informar ao cliente que o valor é in- suficiente; + Aguardar mais dinheiro por parte do cliente; + Seo DETERMINANDO VALOR for maior que 0 VALOR TOTAL, entao: + Calcular a diferenca entre o DETER- MINANDO VALOR eoVALOR TOTAL; Entregar a diferenga ao cliente; + Despedir-se do cliente; ~ + Reiniciar tudo executando a TAREFA1; + FIM; E 6a maior que veremos nesta aula, Apesar disso, nao possui nada que vocé jé nao saiba. Deixe-me apre- senté-la: A primeira instrugao é receber o dinheiro do clien- te. Com isso feito, o sistema ird fazer as verificagoes para analisar qual deciso tomar. Sao trés situagbes possiveis: ou o cliente da o valor exato, ou ele entrega dinheiro a mais, ou entrega dinheiro a menos. Somente um dos trés conjuntos de instrugdes ser executado, concorda? ‘Alguém pode falar que o cliente iré pagar com car- to ou sair correndo com as compras. Bem, para sim- plificar as coisas, vamos imaginar que essas possibili- dades nao existem. Continuando, tendo feita uma das trés instrugdes, 0 sistema vai para: + Despedir-se do cliente; + Reiniciar tudo executando a TAREFA1; 0 ponto importante aqui é que a tiltima tarefa man- da o programa la para a TAREFA1. Isso fard com que tudo comece novamente! Simples, ndo 6? Pois bem, com isso, temos um trabalho complexo dividido em tarefas menores e facels de compreender. Dessa ma- neira, se 0 caixa fosse um rob, poderiamos ordenar seu dia da seguinte maneira: . © Execute a TAREFA1; + Execute a TAREFA2; + Execute a TAREFA3; * Execute a TAREFA4; Como no final da TAREFA4 existe uma instrugo para executarmos a TAREFA1, esse robé ficaria eter- namente atendendo os clientes. Brilhante, concorda? Com o que vimos até agora, damos nosso primei- ro passo rumo ao entendimento do que é a Légica de Programagao e de como é atuar realmente como um programador. Antes de executarmos as atividades de término da aula, gostaria de avisar sobre uma questdo importante. Esse curso de Légica de Programagio visa preparar vocé para atuar como programador, isso é dbvio con- corda? No entanto, vocé pode ter a seguinte duivid: - Mas e os comandos? Como os programo realmente? Quero colocar a mao na massa e sair criando meus. programas! LINGUAGEM DE PROGRAMAGAO ‘Alinguagem de programagao é um método padroni- zado para a comunicacao computador-programador. Com isso, instrugdes podem ser passadas e seguidas a risca, desde as mais simples até as mais complexas, além de quais ages devem ser tomadas sob varias ci cunsténcias. Para criar um programa, realmente vocé precisard aprender alguma linguagem de programagao. Mas 0 que seria isso? Existem muitas linguagens de progra- mago que podem ser usadas e o termo é esse mesmo, linguagem. Cada ferramenta destinada 4 programa- 40 utiliza uma determinada linguagem. Para vocé ter ideia, imagine um programa que sé serve para apre- sentar na tela a frase: Hello, Word! Em portugués, seria Ald, Mundo! Ou seja, o progra- ma sé serviria para mostrar essas palavras na tela. Veja como seria esse programa em algumas lingua- gens diferentes: LINGUAGEM C main() { printf(“hello, world\n"); } LINGUAGEM PASCAL PROGRAM HelloWorld; USES ‘WinCRT; BEGIN InitWinCRT; WriteLn(‘Hello World!'’); ReadLn; DoneWinCRT; END. ore LOGICA DE PROGRAMACGAO LINGUAGEM VISUALBASIC.NET Imports System.Console Class HelloWorld Public Shared Sub Main) WriteLine("Hello, world!") End Sub End Class LINGUAGEM ASSEMBLER mov ax.cs) mov ds,ax + movah,9 mov dx, offset Hello int2ih xor axax int2ih Hello: db “Hello World!”,13,10,"$" No site a seguir, existe uma série de tipos de linguagem: http://pt.wikipedia.org/wiki/Anexo:Lista_de_lin- guagens_de_programa%C3%A7%C3%A30. 0 objetivo aqui nao é assustar vocé, mostrando cé- digos dificets ow algo do tipo. 0 propésito é revelar que vocé deve, primeiramente, aprender a Légica de Pro- gramagao e s6 depois dedicar-se a aprender alguma dessas linguagens. Umas so mais faceis, outras nem tanto. Mas, se vocé dominar a légica de programagao, eu garanto que isso nao vai fazer diferenca para vocé. Por isso, as aulas deste curso sao extremamente im- portantes antes de passarmos para os demais cursos relacionados com programacao que vocé fara. PSEUDOCODIGO Existe uma forma genérica de escrever um algo- ritmo através de uma linguagem bem simples, que é utilizada no ensinamento de iniciantes. Nesse caso, nao é necessario saber nenhuma linguagem de pro- gramacao. Como ja é indicado no nome, pseudo sig- pessoa nifica falso e, por isso, nao pode ser executado num sistema real. Durante todas as aulas, vamos usar essa linguagem. Existem algumas regras para 0 seu uso. Na sequéncia, temos uma lista com essas regras. Caso vocé nao as entenda agora, nao se preocupe, pois no decorrer do curso isso mudara. MODELO DE PSEUDOCODIGO PADRAO Utilizaremos como padrao o seguinte modelo de pseudocédigo: + Todo programa deve ser iniciado com progra- ma SeuNome; z ‘+ 0 Inicio e Fim do programa serao limitados pe- los marcadores Inicio e Fim; + As varidveis serao declaradas no inicio do pro- grama, como NomeVariavel:tipo da variével; + Variaveis no podem ter espago em branco e nao podem ter seu nome iniciado por numero; + Caracteres especiais nao devem ser utilizadas nos nomes das varidveis (’,, ~.¢,-e afins}; + Deve-se evitar 0 uso de palavras-reservadas (ie. aquelas utilizadas pelo programa para fun- ses especificas, como € 0 caso de Inicio e Fim até agora). Para facilitar ao estudante colocare- mos estas palavras em negrito; + Consideraremos que os nomes das variaveis so case sensitive, ie. diferencia maiisculas e mintisculas. Dessa forma, o nome declarado de uma varidvel deve ser exatamente o mesmo, in- cluindo maitisculas e minisculas até o final; + | Usaremos os comandos leia para receber dados do usudrio e escreva para exibir dados ao usu- rio; + 0s textos a serem exibidos na tela ou que te- nham de ser inseridos como caracter serao co- ocados entre “aspas”; + Os comentarios sobre o cédigo podem ser inse- ridos {entre chaves} servindo apenas para efei- to de informagao, mas nao alterando o cédigo. Muito bem, para finalizar o contetido da apostila, realize alguns exercicios que o auxiliardo na fixacao dos conceitos apresentados. a4 ' LOGICA DE PROGRAMAGAO EXERCICIOS 1 Marque verdadeiro ou falso para as seguintes afirmacde: ‘A Logica de Programacao, é a base para inserirmos dados em uma ferramenta de programagao.( ) © computador é uma ferramenta que nos auxilia na procura de dados na internet. ( 5 Um programador é responsdvel por organizar algoritmos em uma sequéncia ldgica, mas no necessita seguir ne- nhuma regra. ( B Se no indicarmos 0 INICIO e o FIM de um conjunto de instrugées, ele funcionaré normalmente. ( } 2 Complete as frases com as palavras corretas: aya de programacéo é um padronizado para a ‘computa- dor- : comunica¢ao - método - linguagem - programador. b)A de 6 um processo que ocorre quando temos dife- rentes a ‘caminhos - decisdo - tomada~ seguir Q de 6 a base para que possamos entender de progra- magio, além de qualquer outra que envolva ‘que necessitem ser dados - Programacao — linguagens — Légica— estrutura— estruturados 3 - Em relacdo ao Pseudocédigo, marque a alternativa correta’ a) € complexa e exige alto grau de conhecimento, b) € utilizada apenas por programadores experientes. ) E um tipo de linguagem de programacao. ) € um cédigo falso que nao é executado em nenhum sistema e) Todas as alternativas esto corretas. Assim que terminar de responder essas questdes, confira se suas respostas estdo corretas, seguindo o gabarito. LOGICA DE PROGRAMAGAO Aula 02| Légica de Programaco - Testes de Mesa e _ Diagramas de Blocos OBJETIVOS DA AULA + Conhecer um pouco mais a respeito de Teste de Mesa; + Aprender o que so Diagrama de Blocos; + Conhecer os tipos de Figuras Geométricas para Padronizacao. © QUE VAMOS FAZER Nesta atividade, vamos reforgar os conceitos vistos no contetido da aula interativa. Sendo assim, iremos nos, aprofundar nos detalhes de tudo que vimos a respeito de Teste de Mesa e Diagrama de Blocos. Esperamos que se empenhe ao maximo e preste muita atengao nos t6picos, pois veremos também muitas formas geométricas que sto responséveis por padronizar um Diagrama de Blocos. TESTE DE MESA Quando foi iniciado esse tipo de programagao, pro- gramar computadores era muito complicado, levava tempo, custava muito caro e havia pouquissimas fer- ramentas para ajudar nessa metodologia. Era indis- pensdvel pensar bem antes de submeter o programa para executar no computador. Com o tempo os ins- trumentos de desenvolvimento evoluiram e tornaram possivel a programagao interativa. 0 programador, agora, vai criando o programa, rodando pouco a pouco e observando qual o resultado. Embora essa evolusio tenha sido de grande importancia para os desenvolve- dores profissionais, isso teve um efeito sobre o ensino da programagio. Nao podemos negar a importancia desse tipo de exercicio para 0 desenvolvimento do raciocinio, sim, porque para desenvolver nossa habilidade precisa- mos de exercicio correto! Atualmente, nao é mais ne- cessério, do ponto de vista do custo e da acessibilida- de, realizar esse tipo de tarefa no papel, como era no passado. Esse tipo de exercicio ganhou um novo ponto de destaque, se nao por necessidade, por permitir que estudante desenvolva uma capacidade fundamental para o desenvolvimento de aplicagdes profissionais. 0 teste de mesa é feito utilizando algum recurso para escrever (pode ser papel ou até mesmo no com- putador) e a pessoa atua como se fosse o processador da maquina interpretando 0 programa. Para peque- hos programas, isso é rapido de fazer, mas se vocé ti ver que controlar cinco variaveis dentro de um loop, jé comega a ficar mais complicado. Vocé deve estar se perguntando: so saber disso?” Bom, de infcio, pode falar que esse tipo de ativida- de é cobrado em provas de certificagao em que, por serem executadas em ambiente controlado, nao é pos- sivel usar um compilador para nos ajudar. Além disso, ajuda tremendamente a desenvolver o raciocinio. 0 teste permite que se verifique se 0 cédigo est realmente executando a fungdo para a qual foi criado e se existe algum erro de légica nos passos apresen- tados. A medida que o programador evolui e se pro- fissionaliza, essa pratica costuma ser deixada de lado por ele e, muitas vezes, isso acaba Ihe tomando horas e horas de trabalho desnecessério. Alguns profissionais respeitados da drea conside- ram que todo programa formado deve ter suas ins- trugdes testadas sempre que necesséria, Para isso, a partir de dados escolhidos com resposta previamente conhecidas, simula-se a execugao do algoritmo ou pro- ‘or que eu preci- =A ‘grama e compara-se a resposta obtida com a resposta esperada. Se nao houver coincidéncia, esta detectado um defeito de software que pode levar a erros de exe- ‘uso em todo o restante do programa, Saber escolher os dados para os testes é de muita importancia na simulacao. Assim, devem-se escolher padrdes de dados de forma que importunem a execu- 40 de todas as instrugdes presentes no algoritmo ou programa, testando todas as diferentes possibilidades de safda uma a uma. Para realizar 0 Teste de Mesa sao listadas todas as. varidveis utilizadas no algoritmo e registrados todos 08 valores assumidos pelas variaveis na ordem em que ocorrem. Para localizar facilmente a varidvel que foi definida ou alterada em um dado momento, é conve- niente identificar com um ntimero cada uma das ins- trugdes contidas no algoritmo. EXECUTANDO UM TESTE DE MESA De acordo com esse programa que aparece logo abaixo, tendo como base se 0 VALOR1 for 10 e 0 VA- LOR2 for 2, veja como serd realizado o Teste de Mesa para obter a resposta de como est o nosso programa, ‘ou seja, se a resposta fornecida por ele est de acordo com o esperado por nés. + INICIO; + Recebe 0 VALOR1; + Recebe 0 VALOR2; + RESULTADO é igual a VALOR1 vezes 0 VA- LOR2; ‘+ Apresentar na tela o RESULTADO; + FIM; = INICIO; = Recebeo 10; = Recebe 02; + RESULTADO ¢ igual a 10 vezes 0 2; + Apresentar na tela 0 20; + FIM; 0 procedimento que foi realizado é bem simples. 0 programa iré receber o valor 10 e o valor 2 que sera do através do teclado por nés. Na sequéncia, foi realizada a multiplicagdo entre eles automaticamen- te, 10 vezes 2, em que obtivemos como resultado 20. Tendo em vista que seria essa a manipulagao de dados que desejamos, podemos dizer que est tudo certo com o nosso programa mediante o Teste de Mesa que aplicamos. LOGICA DE PROGRAMACAO Esse foi um exemplo simples de como seria o pro- cessamento entre esses dados, mas, no decorrer de nossas vidas de programadores, vamos nos deparar com programas muito mais extensos e complexos, em que esses testes terdo de ser muito mais rigorosos e repetitivos para que, assim, tenhamos um funciona- mento perfeito. DIAGRAMA DE BLOCOS Vou comegar a falar desse assunto contanto uma histéria muito antiga em que poderemos ver como tudo funciona em relagio ao Diagrama de Blocos e suas padronizagées. Vocé jé ouviu falar da historia da Torre de Babel? Pois bem, muito tempo depois do diltivio, em que todos ainda falavam a mesma I{ngua, diz a lenda que alguns homens resolveram construir uma torre tao alta, que chegasse até Deus. A construcao ia muito bem, mas Deus, vindo passe- ar sobre a terra, se deparou com tal monumento, nao gostou da atitude e resolveu impedir a construgao. Para tal facanha, ele simplesmente fez.com que cada grupo de homens falasse uma lingua diferente. Assim, 0s pedreiros nao entendiam os carpinteiros que nao entendiam os engenheiros e assim por diante. Como resultado, a construgdo teve que ser interrompida, Em programacao existem intimeras linguas e varias maneiras de se programar, ou seja, ao se construir um eros Seer = LOGICA DE PROGRAMACAO programa grande, com muitos programadores envol- vidos, corre-se o risco de se passar por uma nova Tor- rede Babel. > Para evitar isso, temos 0 que chamamos de Dia- grama de Blocos, que é uma forma padronizada para representar os passos légicos de um determinado al- goritmo. Assim, todo e qualquer programador, inde- pendentemente da linguagem de programagao usada, consegue entender como deve ser o programa. Ou seja, Diagrama de bloco é a representagao grafica de um processo ou modelo de um sistema complexo, uti- lizando figuras geomeétricas. Através dessas figuras geo- métricas e ligagées entre elas, descrevem-se as relagées entre cada subsistema e o fluxo de informagao. £ a representagao grafica da solugao de um problema. Os simbolos devem ser dispostos em ordem l6gica e com sintaxe correta para atingir o objetivo de resolver 0 problema. Os diagramas diferem os fluxogramas por representarem pequenas partes de um grande sistema com foco no processo légico. As formas geométricas que representam a padroni- zacao do Diagrama de Blocos sao as seguintes: SIMBOLOS ESPECIAIS: TERMINAL: Sempre presente em todos os algoritmos, represen- ta a entrada ou safda para o ambiente externo, origem ‘ou destino dos dados do in‘cio ou final do mesmo. CONECTOR: Representa a entrada ou safda para outra parte do ‘mesmo fluxograma. Os simbolos de conexto devem possuir o mesmo identificador tinico interno, ou tam- bém, para conexdes entre paginas, alternativamente ao circulo. 1 A LOGICA DE PROGRAMACAO SETA DE FLUXO DE DADOS: Indica o Sentido que o fluxo de Dados deve seguir. P Representa um processo nomeado que consiste em ‘um ou mais passos do programa especificados em outro local. Por exemplo: sub-rotina ou médulo de programa. ANOTACOES: Representa a adi¢o de comentarios para maior esclarecimento de determinado simbolo ou trecho do algoritmo. Devem-se usar linhas tracejadas para ligar ou cercar o simbolo ou trecho anotado. OPERACAO MANUAL: Representa uma operacdo executada, digitada, in- serida por um ser humano, ELIPSt Representa aauséncia de um ou mais simbolos ndo definidos. £ normalmente usado em verses iniciais de algoritmos complexos. Exemplos de uso de Elipse e anotagées: Ve macy / S \ oo PREPARACAO: Representa a modifica¢o de uma instrugo ou grupo de instrugées e afeta a atividade subsequente. Por exemplo: modificar o indexador de um registro ou preparar uma rotina. vio [ftw Zt ee | Fim H Fores [eee Media (a+8)/2 ‘SIMBOLOS RELATIVOS A PROCESSOS: PROCESSAMENTO: Representa qualquer tipo de processamento de da- dos e executa uma ou mais operagies definidas pelo programador. DECISAO: Representa uma deciséo ou um desvio. Possui apenas uma entrada, mas pode ter varias saidas al- ternativas, das quais apenas uma poderd ser segui- da, como consequéncia da avaliagéo da expresso interna ao simbolo. Cada safda deverd ter seu valor indicado adjacente & linha que representa o cami- ho respectivo. PROCESSO PRE-ESPECIFICADO OU SUB-ROTINA: > ODO PARALELO: : Representa processamento paralelo ou a sincro- nizagao de duas ou mais operagées paralelas. aaa LOGICA DE PROGRAMACAO LIMITADOR DE LAO REPETITIVO: Inicio e final de laco controlado. Deve existir em conjunto com o simbolo que mostra 0 final do lago. As condigdes de teste so colocadas dentro do simbolo de acordo com a posicao do teste (se no inicio ou se no final). |quencial, Por exemplo: fita magnética, régua, etc. SIMBOLOS RELATIVOS DADOS: DADOS: Representa dados de entrada ou saida, qualquer que seja a midia utilizada, ARMAZENAMENTO SEQUENCIAL: Representa dados armazenados cujo acesso é se- ARMAZENAMENTO DIRETO: Representa dados armazenados de forma direta, ou seja, cujo acesso & feito diretamente a ele. Exem- plo: disco rigido, disco ético, etc. Também pode representar dados armazenados em bancos de dados. DADOS ARMAZENADOS: Representa dados armazenados em midia nao es- pecificada para processamento. ARMAZENAMENTO INTEIRO: Representa dados armazenados internamente, ou sseja, na meméria RAM utilizada pelo programa. DOCUMENTOS: Representa documentos em midia impressa, ou Iseja, quando uma determinada informagio, como: formulérios, relatérios, etc. chegar até ele, ser im- Ipresso. ENTRADA MANUAL: Representa dados de entrada, de qualquer tipo de ‘mfdia, que sejam inseridos manualmente em tempo de processamento. Ex: teclado, leitor de cédigo de barras, etc. LOGICA DE PROGRAMACAO ARMAZENAMENTO OFF-LINE: Representa dados armazenados em meio externo (off-line), independentemente da-midia de armaze- namento. Os simbolos que representam dados, respectiva- mente, em Cartao perfurado ou Fita perfurada esto defasados. EXIBICAO: Representa dados de safda em video ou por meio de indicadores visuais, ou sseja, é utilizado para apresentar os dados que serdo exibidos na tela de video. EXEMPLOS DE SIMBOLOS RELATIVOS A DADOS: ee = mS —- SIMBOLOS RELATIVOS A LINHA: LINHA BASICA: Representar 0 fluxo de dados ou controle. Podem- -se usar pontas de setas sélidas ou abertas na extre- midade para indicar a direg4o do fluxo, facilitando a legibilidade que o programa necesita. ‘TRANSFERENCIA DE CONTROLE: Representa a transferéncia de con- trole de um processo para outro. Exemplo: chamada entre telefones. P oS COMUNICACAO: Representa a Transferéncia de da- dos por meio de uma canal de comu- nicagao: LOGICA DE-PROGRAMACAO SH EXERCICIOS 01 - O que é um Teste de Mesa? © AYE it teste feito para detettat falas na prograntacdo: >) Serve pare Ser iiSeridd er utr Diakfarnia de Blotos.'°/°° °C) 0 Taste de! Masw'é@ tesultado do ‘Algoritino: “DY O Téste'de’ Mesd’é 0 Didgrdinia de Blocos ‘om 02 - Identifique os dados de Entrada, Processamento e sel iP argbtHEARS able 267x079 28h OBsmergO AA) Receba cédigo da peca. © B) Recetia Valor da'pe¢a.° C) Receba Quantidade de pecas. 1D) Calcule o valor total da pega (Quantidade * Valor da peca). E) Mostre o cédigo da peca e seu valor total. ‘up zotisonoo 20 A) B) Q o) &) 03 - Responda o que o Diagrama de Blocos a seguir faz: INICIO RECEBER ALTURAL RECEBER ALTURA2 RECEBER ALTURA3 SOMA = ALTURA1 + ALTURA2 + ALTURA3 MEDIA =SOMA/3 APRESENTA NA TELA A MEDIA FIM A= Receber trés alturas, somé-las e dividir por dois, para obter uma média. Depois disso, mostrar a média na tela, B - Receber trés alturas, somé-las e mostrar a soma natela. C- Receber duas alturas e mostré-las na tela, D - Receber trés alturas, somé-las e dividir por trés para obter uma média, Depois disso, mostrar a média na tela. E - Receber duas alturas, somé-las e dividir por dois para obter uma média, Depois disso, mostrar a média na tela 04 - De acordo com seus conhecimentos, diga 0 que t Pay J ‘A Recebe a Temperatural, recebe a Temperatura2, Calcula a Soma das duas e Mostra na Tela. B- Recebe a Temperatural, recebe a Temperatural e Calcula a Diferenga entre elas. C- Recebe a Temperatural, recebe a Temperatura2, Calcula a Diferenca entre elas e Mostra na Tela. D- Recebe a Temperatural,, recebe a Temperatura? e ‘Mostra o valor das duas na tela. E- Recebe a Temperatura2, recebe a Temperatural e Mostra o valor das duas na tela 05 - 0 que é Diagrama de Blocos? A) Ea representacio gréfica de um processo ou mode- lo de um sistema complexo. B) Ea representacio gréfica da solugao de um problema. ©) E um método para descrever a sequéncia do pro- cesso. D) Todas as alternativas esto corretas. LOGICA DE PROGRAMACAO CONCLUSAO Nesta aula apostilada, vocé teve um aprendizado mais detalhado sobre Teste de Mesa e qual a sua importancia ‘na programacao, tendo em mente que é preciso sempre testar o programa que est sendo elaborado para ndo ter nenhum surpresa ao final do mesmo. Vocé se aprofundou mais no assunto Diagrama de Blocos e viu que o mesmo 6 a representacéo gréfica da solucao de um problema. Também teve uma explicacdo detalhada de todas as formas geométricas que sao utilizadas para uma elaborac3o correta de um Algoritmo. Daremos continuidade com todos os conceitos de Légica de Programaco nas pré -se ao maximo para obter um excelente desempenho. 1as aulas, portanto, dedique- Caso tenha restado alguma duivida, aconselhamos a rever todos os conceitos que foram vistos durante a aula e refazer os exercicios Até breve! Le eee | A ae Diretos Reservados c OBJETIVOS DA AULA + Conhecer um pouco sobre a meméria RAM do computador; + Aprender o que sdo as variaveis; + Obter conhecimentos sobre como declarar va- ridveis; + Conhecer os tipos de varidveis; + Conhecer a classificagao das linguagens de pro- gramagio quanto as variaveis. © QUE VAMOS FAZER Nesta atividade, iremos nos aprofundar no conteti- do da aula interativa. Isso significa que veremos com maior detalhes tudo que vimos & respeito das varid- veis e da classifica¢ao da linguagem de programacao. Esperamos que se dedique ao méximo e preste bas- tante atencdo nos tépicos para que, assim, consiga um 6timo desempenho no curso e, consequentemente, obtenha sucesso como profissional! ENTENDENDO A MEMORIA RAM Antes de comecarmos a falar sobre varidveis, é fundamental que saibamos um pouco sobre a meméria. Isso porque é nela que as varidveis so armazenadas. Veja melhor: Ameméria RAM é um componente que permite a leitura ea escrita de dados utilizados em sistemas eletroni- cos digitais. Mas o que isso quer dizer? Quando um computador est em uso, ela é um dos recursos que a maquina est utilizando. Ela utiliza corrente elétrica para armazenar dados, que séo tempordrios, pois, ao ser desligada, ou seja, ao interromper a energi conteiido armazenado é perdido. RAM 6a abreviacdo para Random Access Memory que, em portugues, significa Me- méria de Acesso Aleatdrio. E nessa meméria que sao armazenadas as varidveis durante a maior parte da exe- cugao do programa. MAS ENTAO, O QUE SAO AS VARIAVEIS? Uma varivel é uma area reservada previamente na meméria do computador para que seja armazenado dados de um certo programa por um determinado pe- riodo. ‘Sempre que vamos escrever um programa, precisa- ‘mos, antes de tudo, informar ao computador que utili- zaremos sua meméria, ou seja, que iremos armazenar dados nela. E como se a meméria fosse um armério com divisérias. Em cada diviséria cabe um tipo de dados e a varidvel é criada para reservamos espacos 7 = nat nesse armério para os dados do nosso programa. Isso 6 fundamental pois, assim que executar o programa, © espaco que serd utilizado é reservado com antece- déncia. Para facilitar a compreenséo, vamos nos imaginar em uma viagem. Quando chegarmos ao nossos des- tinos, vamos querer um quarto para descansarmos e guardar nossas malas, nao é mesmo? Seria muito desagradavel se chegassemos no hotel € nao houvesse vagas. Por isso, podemos fazer uma reserva. Antes de viajarmos, nés reservamos quantos quartos desejamos para que, assim que chegarmos, utiliz4-los. Nos programas, reservamos quanto de me- méria vamos utilizar. Veja o programa a seguir para juntos identificarmos as variaveis: = INICIO; ‘+ Recebe a PRIMEIRA nota do aluno; + Recebe a SEGUNDA nota do aluno; + SOMA ¢ igual a PRIMEIRA nota mais a SE- GUNDA nota; + MEDIA ¢ igual a SOMA dividida por 2; + Sea MEDIA for maior ou igual a 7: ‘+ Apresentar ao aluno a média; + Informar que ele fol APROVADO; + Sea MEDIA for menor que 7: ‘+ Apresentar ao aluno a média; z ‘+ Informar que ele foi REPROVADO; + FIM; As varidveis presentes nele so: + PRIMEIRA: Serve para receber e armazenar a primeira nota do aluno. + SEGUNDA: Recebe e armazena a segunda nota do aluno. + SOMA: Recebe o valor da soma entre as duas tadas. Recebe e armazena o valor da SOMA. dividido por a Como deve ter percebido, identificar uma variavel no & nenhum bicho de sete caberas, concorda? Na verdade, nés estavamos utilizando-as o tempo todo, porém sem que elas fossem notadas. No entanto, a partir de agora, isso nao devera mais acontecer, afinal,jé sabemos 0 que elas so e para que servem. Portanto, daqui em diante, passaremos a de- clara-las em todos os programas. LOGICA DE PROGRAMAGAO DECLARANDO VARIAVEIS Agora que sabemos que 0 computador reservard um espago na meméria destinado ao nosso programa, um ponto muito importante é declararmos as varia- veis no inicio do mesmo. Dectarar a varivel nada mais 6 que informar a0 computador sua existéncia. Faze- ‘mos isso declarando-as no infcio do cada programa. Existem linguagens de programacao em que a declara- 40 nao é obrigatéria, nem necessaria. [4 outras muito usadas exigem isso. Mais adiante, veremos cada uma dessas linguagens e suas classificagdes em relacdo as variéveis, No esquema a seguir, colocamos dois programas, de modo que um esté como faziamos antes, ou seja, sem declarar, e 0 outro esta com as varidvei das para que vocé possa observar como isso ¢ feito: SSE Sem declaragao de variavel: + INICIO; + Recebe a PRIMEIRA nota do aluno; + Recebe a SEGUNDA nota do aluno; + SOMA é igual & PRIMEIRA nota mais a SE- GUNDA nota; + MEDIA ¢ igual a SOMA dividida por 2; + SeaMEDIA for maior ou igual a 7 ‘+ Apresentar ao aluno a média; + Informar que ele foi APROVADO; + Sea MEDIA for menor que 7 + Apresentar ao aluno a média; + Informar que ele foi REPROVADO; + FIM; TT Com declaragao de varisvel: + VARIAVEIS PRIMEIRA; SEGUNDA; SOMA; MEDIA + INICIO; + Recebe a PRIMEIRA nota do aluno; ‘+ Recebe a SEGUNDA nota do aluno; + SOMA ¢ igual PRIMEIRA nota mais a SE- GUNDA nota; + MEDIA é igual a SOMA dividida por 2; ‘+ Sea MEDIA for maior ou igual a7 + Apresentar ao aluno a média; + _Informar que ele foi APROVAD\ + Sea MEDIA for menor que 7 ‘+ Apresentar ao aluno a médi ‘+ Informar que ele foi REPROVADO; LOGICA DE PROGRAMACAO Simples, concorda? Portanto, vamos prosseguir conhecer quais os tipos das varidveis. CONHECENDO OS TIPOS DAS VARIAVEIS Vimos bastante sobre variavels, mas ainda ha algo que precisamos aprender sobre elas. Além de decla- ré-las, reservando, assim, um espago na meméria do computador, precisamos, também, definir qual o tipo de informacao que ela vai armazenar, Basicamente, as varidveis podem ser do seguinte tipo: CARACTERE: o valor armazenado é um caractere, ou seja, apenas uma ‘nica letra. STRING (TEXTO): uma varidvel desse tipo é utiliza- da para armazenar texto, que é um conjunto de carac- teres. Isso quer dizer que, se féssemos armazenar um nome, por exemplo, usariamos esta opeao. NUMERO INTEIRO: como o préprio nome diz, é uti- lizada para armazenar nimeros inteiros, ou seja, sem digitos depois da virgula. Em um jogo de futebol, por exemplo, temos 11 jogadores. Nesse caso, declararia- mos a varidvel como tipo Inteiro, pois no podemos ter 11,2 jogadores em campo. NUMERO EM PONTO FLUTUANTE: também arma- zena niimeros, mas, neste caso, niimeros quebrados, ‘ou seja, aqueles que contém digitos depois da virgula. Suponha que um jogador pese 77,8kg. Neste caso, a varivel PESO seria Numero em Ponto Flutuante, por conter um niimero quebrado. BOOLEANO: é um tipo simples, em que se encon- tram dois valores, um verdadeiro e um falso. Ele é uti- lizado onde hd uma resposta, que pode ser Verdadeira (True), sim, ou Falsa (False), ndo, Estes sdo os tipos mais utilizados. Com eles, vocé pode fazer muitas coisas. Mas é também imprescin- divel dizer que existem outros, que variam de acordo com suas necessidades e que podem ser aprendidos por vocé conforme for adquirindo prética. ‘Vamos ver como seriam alguns dos tipos das vari- veis aplicados em um programa, aquele mesmo que viemos trabalhando: + VARIAVEIS PRIMEIRA; ‘SEGUNDA; SOMA; MEDIA + INICIO; ‘+ Recebe a PRIMEIRA nota do aluno; ‘+ Recebe a SEGUNDA nota do aluno; + SOMA é igual a PRIMEIRA nota mais a SEGUNDA nota; ‘+ MEDIA é igual a SOMA dividida por 2; ‘+ Sea MEDIA for maior ou igual a 7 + Apresentar ao aluno a média; + Informar que ele foi APROVADO; + Sea MEDIA for menor que 7 + Apresentar ao aluno a média; + Informar que ele foi REPROVADO; + FIM; Dado o programa, vamos analisé-lo com cautela e declarar o tipo de cada variavel, veja: As variaveis PRIMEIRA e SEGUNDA receberdo as notas do aluno. Levando em consideracao que as no- tas irdo de 0 até 10, sem ter fragao alguma, ou sefa, ndo serdo nimeros quebrados, podemos dizer, entio, que essas so do tipo NUMERO INTEIRO. ¥ Agora, temos a varivel SOMA, Como as duas an- teriores s6 receberao nimeros inteiros, o resultado da soma das duas s6 pode também ser assim, afinal, no conseguimos ntimeros fracionados com a soma de niimeros inteiros. Desse modo, sabemos que a SOMA sera do tipo NUMERO INTEIRO. Y Chegamos finalmente a MEDIA. Vocé poderia pensar que, por apenas estarmos trabalhando com niimeros inteiros, esta seguiria a mesma linha. Mas saiba que isso ndo é verdade. Imagine que a primeira nota do aluno é 7 e a segunda é 4. A soma seria 11. Até entdo, sem problema algum, afinal, todos os valores sem nenhuma casa ap6s a virgula. Porém,a MEDIA 6a SOMA dividida por 2, neste caso, temos 11 que dividi- do por 2 €5,5, ntimero fracionado, Com isso, sabemos que a varidvel MEDIA deve ser do tipo NUMERO EM PONTO FLUTUANTE. TA LOGICA DE PROGRAMACAO Depois disso, nosso programa fica da seguinte ma- neira: + VARIAVEIS + PRIMEIRA do tipo INTEIRO; ‘+ SEGUNDA do tipo INTEIRO; + SOMA do tipo INTEIRO; + MEDIA do tipo NUMERO EM PONTO FLU- TUANTE. + INICIO; + Recebe a PRIMEIRA nota do aluno; + Recebe a SEGUNDA nota do aluno; + SOMA ¢ igual A PRIMEIRA nota mais a SE- GUNDA nota; ‘+ MEDIA é igual a SOMA dividida por 2; + Sea MEDIA for maior ou igual a7 + Apresentar ao aluno a mé + Informar que ele foi APROVADO; + Sea MEDIA for menor que 7 + Apresentar ao aluno a médi + Informar que ele foi REPROVADO; + FIM; MAS E AS CONSTANTES, O QUE SAO ELAS? Para prosseguirmos com nosso aprendizado, va- mos entender o que sdo as constantes. A grosso modo, constante nada mais é que uma va- ridvel que nao varia. Isso mesmo! Constante é um tipo de variével que mantém seu valor ou contetido fixo ao longo de todo o programa, sem variagao alguma. Imagine que em um cadastro de cliente seja pedido o ano de nascimento do mesmo. Isto ¢ um exemplo de constante, pois o ano de nascimento de alguém nunca muda. 20 ‘AS LINGUAGENS DE PROGRAMACAO E ‘SUAS CLASSIFICAGOES QUANTO AS VARIAVEIS ‘As linguagens de programagao sio uma forma padronizada de expressar instrugdes para um com- putador. Através delas, passamos ordens para que 0 computador possa executar. Essas ordens devem ser bem detalhadas e claras para que tudo ocorra como 0 esperado. ‘Quando falamos de varidveis, estas linguagens rece- bem diferentes qualificagdes, que as adequam a cada tipo de varidvel. Observe: + Fracamente tipada: Sao linguagens de programagao em que as variaveis mudam de tipo dinamicamente conforme a situagao. Isso quer dizer que ela nao precisa seguir exatamente 6 tipo que foi determinado a ela. Suponha que temos uma variével do tipo String e digitamos nela um nimero qualquer. Mesmo sendo do tipo Texto, conseguirfamos realizar célculos matema- ticos com ela. + Fortemente tipada: Sao linguagens em que o tipo da varidvel, uma vez definido, mantém-se o mesmo até que ela seja elimi- nada da memédria. rentemente do caso anterior, nesta, se temos um tipo String e inserimos um nume- ral, ele continuaré valendo apenas como texto e impe- dird a realizago de calculos matematicos. + Dinamicamente tipada: £ 0 tipo de linguagem em que o tipo da varidvel € ela em si sdo definidos em tempo de execusao, ou seja, sao definidos quando o programa ja est4 em uso. Por ‘exemplo, temos um campo em que se pede para que 0 usuario digite algo. Se ele inserir um texto, ela se tor- naré String. + Esteticamente tipada: 0 tipo da variavel é definido em tempo de compila- 40, ou seja, enquanto o programa é criado. ener is = LOGICA DE PROGRAMACAO EXERCICIOS 01 - Analise cada sentenca a seguir e marque V quando Verdadeira e F quando Falsa. a) Ameméria RAM é utilizada para armazenar dados temporarios.( ) b) Variavel pode ser um sindnimo de memoria RAM. ( ) ‘c) Uma variavel é um espaco reservado na meméria do computador para armazenar algum tipo de informacao.( ) d) Amemoria RAM pode armazenar dados por tempo indeterminado, independentemente de estar com corrente elétrica ou nao. ) (02 - Analise o programa a seguir, identifique suas varidveis e transcreva-as no local adequado: + VARIAVEIS ; ‘+ Recebe 0 PRIMEIRO valor; Fo ae ‘+ Recebe 0 SEGUNDO valor; Pian ee ‘+ SOMA é igual ao PRIMEIRO valor mais 0 EINIGIOL ‘SEGUNDO; * Resultado ¢ igual & SOMA. . FIM (03 - Abaixo, temos um programa para calcular a média de livros que cada leitor de uma determinada biblioteca |e Por més. Com base nos seus conhecimentos, identifique as variéveis preenchendo os campos vazios: + VARIAVEIS * INICIO ‘+ Recebe a quantidade de livros da MESO1; ‘+ Recebe a quantidade de livros da MESO2; © SOMA é igual 20 valor do MESO1 mais do MESO2; ‘© MEDIA é igual & SOMA dividida por 2. FIM 04 - Utilizando ainda o mesmo programa do exercicio anterior, analise-o e, entéo, escreva 0 tipo correto de cada uma de suas variaveis: + INICIO + VARIAVEIS ‘= Recebe a quantidade de livros da MESO1; MESO1 do tipo 7 + Recebe a quantidade de livros da MESO2; | MES02 do tipo + SOMA é igual ao valor do MESO1 mais do MESO2; SOMA do tipo ; ‘* MEDIA é igual & SOMA dividida por 2. MEDIA do tipo. 4 * FIM (05 - A respeito da classificago das linguagens de programacao, faca a combinagao entre as colunas para que cada item seja relacionado com sua respectiva definicao. 1) Fracamente tipada; ( Jem que o tipo da variavel é definido ao mesmo tempo que o programa é criado. 2) Fortemente tipada; ( As varidveis mudam de tipo conforme a situacao. 3) Dinamicamente tipada; {Uma vez atribuido, o tipo da variével ndo muda mais. 4) Esteticamente tipada. ( Jo tipo ¢ definido conforme o programa é executado. CONCLUSAO Nesta atividade, vocé aprendeu o que so as varidveis, muito utilizadas nas linguagens de programacdo, além de conhecer cada um de seus tipos. Para falar sobre varidveis, conheceu um pouco mais sobre a meméria RAM do com- putador, onde elas so armazenadas. Também aprendeu que as linguagens de programacao podem ser classificadas a e conheceu algumas dessas classificacdes. mn OBJETIVOS DA AULA + Aprender o que sao os operadore + Conhecer os operadores aritméticos; + Obter conhecimento sobre os operadores rela- cionais; + Analisar os operadores légicos. © QUE VAMOS FAZER Na atividade de hoje, revisaremos os principais conceitos vistos durante a aula interativa e, por isso, reforgaremos nosso aprendizado sobre os operado- res, seus tipos e, também, suas funcdes. Detxando a conversa de lado, esperamos que vocé fique atento a todos o detalhes contidos em seu material didatico. © QUE SAO OS OPERADORES? Basicamente, os operadores séo meios pelo qual adicionamos, subtraimos, comparamos e avaliamos 0s dados dentro do computador. Essas fungies sao di- vididas em trés tipos de operadores: + Operadores Aritméticos; + Operadores Relacionai + Operadores Légicos. CONHECENDO OS OPERADORES ARITMETICOS De acordo com as fungdes descritas sobre os opera- dores, podemos dizer que os operadores aritméticos, Go os responsdveis por adicionar e subtrair os dados do computador. Isso porque eles séo utilizados para LOGICA DE PROGRAMA cho obter resultados numéricos através das operagdes de adigao, subtra¢o, multiplicagdo e divisao. Além des- tas que sdo bem comuns, também podemos usar 0 operador para exponenciacao, 0 qual é representado por dots asteriscos (**). A seguir, temos uma pequena tabela que mostra os operadores aritméticos e seus simbolos dentro da linguagem de programagao. Operagbes Simbolos Adicio + Subtracao = Multiplicagio * | Divisio 7 Exponenciacao a HIERARQUIA DAS OPERACOES ARITMETICAS Agora que conhecemos as operagdes aritméticas, € muito importante aprendermos sobre sua hierar- quia, isso porque, caso facamos algum célculo errado, teremos nosso trabalho prejudicado. Primeiramente, veremos a ordem em que as operagées deverdo ser calculadas: 12 - Multiplicagdes e Divisdes (conforme a ordem em que elas aparecem); 22 ~ AdicSes e Subtragdes (conforme a ordem em que elas aparecem). Para que voce possa entender melhor essa primeira parte sobre a hierarquia, acompanhe 0 exemplo mos- trado a seguir: P 2 LOGICA DE PROGRAMACAO i) RESULTADO: 1+7*2/2-1 RESULTADO: 1 +14 /2-1 RESULTADO: 1+ 7-1 1e7,que dag. RESULTADO: 8 - 1 RESULTADO: 7 ‘Aqui, nosso primeiro passo foi multiplicar 7 vezes 2, que resulta em 14. Em seguida, dividimos 14 por 2, que ‘Como sé nos resta uma adigo e uma subtra¢ao, comeramos somando igual a7, Depois, calculamos 8 menos 1. E chegamos ao resultado 7. Como vocé pode ver, 0 conceito de hierarquia das operacées aritméticas nao é nada complicado, porém, ele nos exige muita atencdo, afinal, queremos obter sucesso nos trabalhos que desenvolvermos. Se formos calcular uma expresso e que haja varias operagées distintas e uma delas se encontre entre pa- rénteses, esta seré a primeira a ser calculada: 12 - Operagdes entre parénteses; Multiplicagdes e Divisées (conforme a ordem em que elas aparecem); Dando continuidade, ha algo sobre esse assunto que devemos saber: “E se inserirmos parénteses em Es das oporacSes, como Neate a heer 38 ~ Adigdes e SubtragSes (conforme a ordem em er exatamente Iso 0 que Veremos agora! aes secs cS Si ‘Agora, observe um exemplo que segue essa hierarquia: ¥ RESULTADO: 3 * (2-1) + 4/2 Primeiramente, calculamos a subtrag4o que se encontra entre parénteses, Nesse caso, 2 menos 1, que é igual a 1. Em seguida, multiplicamos 3 vezes 1, que é 3. Depois, calculamos 4 dividido por 2, que resulta em 2. Para finalizar, somamos 3 mais 2. Assim, chegamos ao resultado 5. RESULTADO: 3* 144 /2 RESULTADO: 3 + 4 /2 RESULTADO: 3 +2 RESULTADO: 5 Com isso, conhecemos as operagdes aritméticas e sua hierarquia quando hd ou nao o uso de parénteses. Por- tanto, daremos continuidade a aula e aprenderemos mais um tipo de operador: neem te ae APRENDENDO SOBRE OS OPERADORES ela esteja errada, o resultado ¢ falso. Observe os exem- RELACIONAIS plos mostrados a seguir: Lembra-se das finalidades dos operadores que des- 1=2 Falso (1 nao ¢ igual a2) crevemos anteriormente? Podemos dizer que os ope- 2<>1 — Verdadeiro (2 ¢ diferente de 1) radores relacionais so os responsaveis por comparar 8>7 Verdadeiro (8 é maior que 7) ‘os dados do computador. Eles s4o sempre usados nas 3<2 Falso (3 nao é menor que 2) 4 Verdadeiro (4 6 maior que 2) tomadas de decisdo de um programa e, dessa forma, estabelecem uma relacdo entre dois ou mais valores e possibilita, assim, que o programa escolha qual cami- nnho seguir. Observe na tabela abaixo os operadores € seus significados: 1 Verdad Muito fécil, no é mesmo? Para auxilié-lo em seus estudos, a seguir temos 0 mesmo programa, mas exi- bido de duas formas diferentes. Isso porque em uma delas utilizaremos os operadores relacionais nas to- (1.6 menor que 3) Operadores Significados madas de decisao do mesmo: aaa Sem utilizar os operadores relacionais nas tomadas > Malor que de decisio:¥ 5 Maior ou igual eee < Menor que PRIMEIRA do tipo INTEIRO; Menor ou igual SEGUNDA do tipo INTEIRO; = ; FALTAS do tipo INTEIR Die vente) SOMA do tipo INTEIRO; Para cada comparagao correta, dizemos que o re- MEDIA do tipo NUMERO EM PONTO sultado da expressio é verdadeiro. Do contrario, caso FLUTUANTE; 23. + INICIO; + Recebe a PRIMEIRA nota do aluno; ‘+ Recebe a SEGUNDA nota do aluno; ‘+ Recebe o niimero de FALTAS do aluno; + SOMA ¢ igual PRIMEIRA nota mais a SE- GUNDA nota; MEDIA ¢ igual & SOMA dividida por 2; + SeaMEDIA for maior ou igual a 7 + Apresentar ao aluno a MEDIA; + Apresentar o ntimero de FALTAS; + Informa que ele foi APROVADO; + Sea MEDIA for menor que 7 + Apresentar ao aluno a MEDIA; ‘+ Apresentar o ntimero de FALTAS; ‘+ Informar que ele foi REPROVADO; + FIM; Utilizando os operadores relacionais nas tomadas de decisao:¥ + VARIAVEIS PRIMEIRA do tipo INTEIRO; SEGUNDA do tipo INTEIR( FALTAS do tipo INTEIRO; SOMA do tipo INTEIRO; MEDIA do tipo NUMERO EM PONTO FLUTUANTE; + INICIO; + Recebe a PRIMEIRA nota do aluno; + Recebe a SEGUNDA nota do aluno; + Recebe o ntimero de FALTAS do aluno; + SOMA ¢ igual a PRIMEIRA nota mais a SE- GUNDA nota; MEDIA ¢ igual & SOMA dividida por 2; + MEDIA >=7 ‘+ Apresentar ao aluno a MEDIA; ‘+ Apresentar o niimero de FALTAS; + _Informar que ele foi APROVADO; + MEDIA<7 + Apresentar ao aluno a MEDIA; ‘+ Apresentar o ntimero de FALTAS; + Informar que ele foi REPROVADO; + FIM; Como vocé pode ver, os operadores relacionais fo- ram inseridos exatamente nas tomadas de decisio do programa, informando o que é necessério para o alu- no ser aprovado ou reprovado. ‘Agora que aprendemos um pouco mais sobre esse conceito, continuaremos nossa aula e conheceremos 0 terceiro tipo de operador. 2 LOGICA DE PROGRAMACAO ANALISANDO OS OPERADORES LOGICOS Os operadores légicos sdo os responsdveis por ava- liar os dados do computador. Eles sao utilizados quan- do hé a necessidade de fazer mais de uma comparacao para que uma aco possa ou ndo ser realizada ou, en- tao, em casos que se queira negar, inverter o resultado de uma comparagdo, Diferentemente dos outros tipos de operadores, este nao usa simbolos, e sim palavras em inglés, como vocé pode ver a seguir: ¥ + AND (E); + OR (OU); + NOT (NAO). Para que vocé possa entender melhor, conhecere- mos cada um dos tipos separadamente. Comearemos pelo operador légico AND (E): + AND (£)- este operador é utilizado quando for necessario comparar duas ou mais condigdes em que elas sio VERDADEIRAS, ou seja, todas as condigées exigidas devem ser cumpridas. Utilizando os operadores relacionais nas tomadas, de decisio: + VARIAVEIS PRIMEIRA do tipo INTEIRO; SEGUNDA do tipo INTEIRO; FALTAS do tipo INTEIRO; SOMA do tipo INTEIRO; MEDIA do tipo NUMERO EM PONTO FLUTUANTE; + INICIO; + Recebe a PRIMEIRA nota do aluno; + Recebe a SEGUNDA nota do aluno; + Recebe o niimero de FALTAS d alunc + SOMA é igual 4 PRIMEIRA nota mais a SE~ GUNDA nota; MEDIA é igual a SOMA dividida por 2; + MEDIA >= 7 AND FALTAS <= 25 entao ‘+ Apresentar ao aluno a MEDIA; + Apresentar o nimero de FALTAS; + _Informar que ele foi APROVADO; + SENAO, ENTAO: ‘+ Apresentar ao aluno a MEDIA; + Apresentar o nimero de FALTAS; + Informar que ele foi REPROVADO; + FIM; Scseriig LOGICA DE PROGRAMACAO ‘Vocé deve ter notado que, agora, o programa passou aconsiderar também o niimero de faltas do aluno. Além isso, j4 temos as nossas condigdes para que ele seja aprovado ou nao. Sendo assim, observe as mesmas: + MEDIA >= 7 AND FALTAS <= 25 entdo; + SENAO, ENTAO Na primeira condigéo temos o que o aluno deveré cumprir e, na segunda, a situacdo contréria, caso ele no cumpra 0 que fol pedido. Nesse caso, 0 aluno de- verd obrigatoriamente ter média maior ou igual e 7 também o seu niimero de FALTAS deverd ser menor ou igual a 25. Como vimos, 0 operador légico AND transforma os critérios para 0 aluno ser aprovado em exigéncias. Continuando, agora conheceremos o operador légi- co OR (OU): + OR (OU) - Basicamente, ele funciona como o operador l6gico AND (E), ou seja, é usado quan- do ha a necessidade de comparar duas ou mais, condigdes, porém é obrigatério que pelo menos uma dessas comparagées seja cumprida. Observe novamente o programa de notas, mas no lugar do operador légico AND, temos 0 OR: VARIAVEIS PRIMEIRA do tipo INTEIRO; SEGUNDA do tipo INTEIRO; FALTAS do tipo INTEIRO; SOMA do tipo INTEIRO; MEDIA do tipo NUMERO EM PONTO FLUTUANTE; «INICIO; * Recebe a PRIMEIRA nota do aluno; + Recebe a SEGUNDA nota do aluno; + Recebe o ntimero de FALTAS do aluno; + SOMA ¢ igual a PRIMEIRA nota mais a SE- GUNDA nota; + MEDIA 6 igual A SOMA dividida por 2; + MEDIA >= 7 OR FALTAS <= 25 entéio ‘+ Apresentar ao aluno a MEDIA; ‘+ Apresentar o niimero de FALTAS; ‘+ Informar que ele fol APROVADO; + SENAO, ENTAO: + Apresentar ao aluno a MEDIA; + Apresentar o niimero de FALTAS; + Informar que ele foi REPROVADO; + FIM; Como vocé pode ver, alteramos apenas o operador l6gico na primeira condi¢ao do programa, mas a leitu- ra do mesmo ja é diferente. ‘Agora, o aluno precisa apenas ter média maior ou igual a 7 ou, entao, nao ter faltado mais que 25 vezes. Se ele obter sucesso em um desses critérios, ele sera aprovado. Caso isso nao acontega, 0 mesmo seré re- provado. Antes de fazermos alguns exercicios sobre os con- ceitos que estamos aprendendo, conheceremos o tilti- mo operador légico, o NOT (NAO): + NOT (NAO) - Este operador é usado para inver- ter o resultado légico das expresses, ou seja, se ela for Verdadeira, basta inserirmos o mesmo e ela passa a ser Falsa, ou vice-versa. Para que vocé possa entender melhor, faremos um rapido teste de mesa, em que nosso aluno tem média Be 10 faltas, Dessa forma, a primeira condicao ficaria da seguinte maneii 8>=7 AND 10 <=25 A primeira parte dessa expressdo é verdadeira, pois 8 & maior que 7. Na segunda parte, também temos um resultado verdadeiro, afinal, 10 com certeza é menor que 25. Como estamos utilizando o operador AND, € necessdrio que toda a expresso seja verdadeira e, como foi exatamente isso o que aconteceu, 0 resultado légico da mesma é Verdadeiro. Se colocarmos o operador Igico NOT A frente da ‘mesma, ela seria mostrada da seguinte forma: NOT (8 >= 7 AND 10 <= 25) Dessa forma, invertemos o resultado da expresso, ou seja, como ela era Verdadeira, passa a ser Falsa. g Fa LOGICA DE PROGRAMAGAO i A seguir, temos um tabela que mostra todos os valores possiveis criados pelos operadores légicos AND (E), ‘OR (OU) e NOT (NAO): 12 Valor | Operador | 22 Valor | Resultado v AND) Vv. AND) ‘AND, ‘AND OR OR oR OR NOT NOT nl<|a]<|=]<]= al<|=|=|<]<]=]=]< <|=|=|<|<|<|=|=|=]< EXERCICIOS 01 - Selecione a alternativa que vocé julga conter a ordem correta da hierarquia das operagbes aritméticas: a) 12— Operacées entre parénteses / 22 ~ Multiplicagdes e divisies / 32 AdigSes e subtracdes b) 12—Adigdes entre parénteses / 22 ~ MultiplicagSes e divisdes / 32 - Adigdes e subtragdes c) 12 —Subtracdes entre parénteses / 2°~ Multiplicagées e divisdes / 3° - Adicdes e subtracdes 4d) 12 Operacées entre parénteses / 22 ~ Multiplicacdes e subtragdes / 32 — AdigGes e divisoes, e) 12 Operacées entre parénteses / 22 ~ Multiplicacdes e adicdes / 3° - Divisdes e subtragdes 02- Analise a expresso a seguir e, depois, escolha a alternativa que contém o resultado correto: RESULTADO: 4+3~-2*2+(3-1) a)3 5 e)7 b)4 46 (03 - Observe os simbolos mostrados a seguire, afren- 04 - De acordo com o que aprendemos sobre os ope- te de cada um deles, informe a qual tipo de operador adores légicos, observe as expressées a seguire marque _ eles pertencem: V para aquelas em que o resultado for Verdadeiro e F para Falso: { al< b)/ a)5>3AND3><6 () Oe pbjegitanal Saba T aL, b)7>=3 NOT CO) a+ )9>100R2=2 fe O) ao d)4>=1AND6 e)3<-4NOT CONCLUSAO Reforcamos nosso aprendizado sobre os operadores aritméticos e as hierarquias dessas opera¢des; aprendemos sobre os operadores relacionals que so responsdveis por comparar os dados e usados para tomadas de deciso. Por fim, vimos um pouco sobre operadores ldgicos AND, OR, NOT e que sdo usados quando existe a necessidade de fazer ‘mais de uma comparacdo. Bem, mais uma etapa do nosso curso foi vencida. Agora, relaxe um pouco e volte, porque ainda temos outras eta pas para vencer. A gente se encontra na préxima unidade. Ate Id! OBJETIVOS DA AULA + Conhecer um pouco mais a respeito de Estrutu- rade Decisao; ‘+ Aprender o que sio Comando de Decisio SE; + Conhecer como é elaborado o Comando de De- cisdo Case; + Obter conhecimento de como utilizar os Co- mando de Repetic3o; + Entender melhor sobre Comando de Repeticao FOR; + Aprender como a estrutura de Repeticio do WHILE é definida; + Como evitar os Lagos Infinitos. © QUE VAMOS FAZER Nesta atividade, vamos reforgar todos os concei- tos vistos no contetido da aula interativa. Sendo as- sim, iremos nos aprofundar nos detalhes de tudo 0 que vimos a respeito de Estrutura de Decisao, falare- mos muito sobre os Comando de Deciso SE e Case e aprenderemos a usar os Comando de Repeticao finita ¢ infinitamente. Sobre esse comando, falaremos, tam- bém, sobre mais duas classes que so FOR e WHILE. Depois, conheceremos o que s4o Lagos Infinitos, tendo em vista que ele pode ser esperado ou nao e sabendo que, em muitos momentos, sdo erros de programacao. Esperamos que se empenhe ao maximo e preste mui ta atengao aos t6picos, pois veremos contetidos indis- pensdveis para a vida de programador. LOGICA DE PROGRAMACAO Aula 05| Estruturas de Decisdo e Repeticao COMANDO DE DECISAO ‘Todas as estruturas de programagao, independent da linguagem utilizada, tém instrugdes que controlam todo o fluxo de execugao do programa, como vimos em aulas anteriores. Os Comandos de Decisdes sao implantados em um cédigo-fonte com o objetivo de direcionar o fluxo de execugao e fazer com que algumas linhas de cédigo sé sejam executadas caso necessérias. Essas estruturas permitem que um cédigo seja executado um niimero determinado de vezes ou quando obedecem as condi- Ges légicas da programacao. ‘Vamos usar como base um e-mail particular. Se di- gitarmos a senha corretamente nao teremos nenhum problema e poderemos usé-lo outras vezes tranquila- mente. No entanto, se errarmos algumas vezes essa se- nha, esse programa ser bloqueado automaticamente e ficard inacessivel ao usuario. Isso acontece porque 0 programador especificou que teria que ser assim. Para desenvolver programas competentes neces- sério, na maioria das vezes, tomar decisdes durante a execugdo do Algoritmo. £ o que acontece, por exem- plo, em um programa de escola em que é preciso deci- dir se serd exibido para o usuario se o altino foi apro- vado ou reprovado, de acordo com as notas inseridas no programa, Essas decisdes interferem diretamente no andamento dele. 7 =e COMANDO DE DECISAO SE 0 Comando de Decisao SE é muito utilizado quando 14 necessidade de testar uma condigo antes mesmo de executar uma ado. De maneira geral, essa classe funciona assim: se uma determinada condigao for atendida, 0 programa percorreré um caminho espe- cificado por nés programadores. Caso essa condiga0 nao seja atendida, ele percorrerd outro caminho, tam- bém pré-determinado por nés. Vamos ver 0 exemplo a seguir: Imagine que teremos que construir um programa para controlar todo 0 estoque de um determinado item definido pelo usuario. Em certa parte do progra- ma, terfamos a verificagio de quantidade para alertar © usuario que o estoque esta balxo demais. Veja a se- guir como seria: Se ESTOQUE < 10 entao Escreva("Estoque muito baixo. Providen- ciar a compra de mais itens!”) Sendo Escreva(“Estoque esté dentro dos limites normais.”) Fimse Podemos observar que a estrutura é muito bem de- finida. Na primeira parte, temos a verificacdo que, nes- se caso, é ver se a varidvel ESTOQUE é menor que 10. Se ESTOQUE < 10 entao Escreva(“Estoque muito baixo. Providen- ciar a compra de mais itens!”) Sendo Escreva("Estoque esta dentro dos limites normais.") FimSe Se a condigao for totalmente atendida, 0 bloco que est contido entre o ENTAO e o SENAO e serd executa- do como mostra o exemplo a seguir: Se ESTOQUE < 10 entao Escreva("Estoque muito baixo. Provi- denciar a compra de mais itens!”) Sendo Escreva("Estoque est dentro dos limites normats.”) FimSe Tendo em vista que se a primeira condigo contida na estrutura de nosso programa nao for atendida, 0 bloco entre o SENAO e o FimSe é que sera executado. B LOGICA DE PROGRAMACAO Se ESTOQUE < 10 entao Escreva("Estoque muito baixo. Providen- ciara compra de mais itens!”) Sendo Escreva(“Estoque esta dentro dos limi- tes normais.”) FimSe Note que as estruturas de decisao caminham sem- pre juntas com os operadores légicos. Como vimos na aula passada, ao retornar verdadeiro ou falso em uma expresso, os operadores l6gicos permitem ao progra- mador, em seus cédigos, seguir um ou outro caminho que serd determinado por nés. Entdo, a expresso Se ESTOQUE < 10 entao Pode ser tanto verdadeira, ou seja, ESTOQUE é me- nor que 10, ou falsa, isto , ESTOQUE é maior do que 10. E para reforgar nossos conhecimentos para que no fiquem diividas a respeito de Comando de Decisdo SE, vamos elaborar passo a passo um algoritmo que fica- 4 responsével por verificar se um nimero é positive e exibir a seguinte mensagem na tela: “O NUMERO & POSITIVO". Inicialmente, temos o Terminal INICIO e, logo em seguida, a classe que ficaré responsdvel por promover aleitura do valor que sera inserido pelo usuario. INICIO Leia num Em seguida, prontamente é questionado a seguinte condiggo: SE numero maior que 0 ENTAO. INICIO Leia num ‘SE (num >= 0) ENTAO Em seguida, precisamos adicionar uma classe que ficard responsavel por apresentar a mensagem na tela para 0 usuario caso o niimero seja positivo. INICIO Leia num SE (num >= 0) ENTAO ESCREVA “O NUMERO £ POSITIVO” Podemos notar que a estrutura do programa esté bem definida com as especificagdes que precisamos, ‘ou seja, SE 0 valor digitado for maior ou igual a zero, aparecerd a mensagem “O NUMERO E POSITIVO”, po- dendo, assim, ser finalizado. Jé, se 0 valor digitado for menor que o especificado por nés, também seré finali- zado, mas nao ird passar por nenhum comando. INICIO Leia num SE (num >= 0) ENTAO ESCREVA “O NUMERO E POSITIVO” FIM SE FIM Esse programa, basicamente, receberd o valor digi- tado pelo usudrio e iré averiguar se ele é maior, igual ‘ou menor que 0. Caso for maior ou igual, iré nos mos- trar a mensagem “O NUMERO E POSITIVO" e sera fi- nalizado. Se o valor digitado for menor que 0, pulara a classe SE e iré direto para o FIM SE e seré finalizado. Mas como jé dissemos anteriormente, poderia existir outro caminho a ser percorrido por um nmero nega- tivo. COMANDO DE DECISAO SELECT CASE Acstrutura de decisio Select Case é utilizada para testar, na condi¢ao, uma tinica expresso ou varidvel que produz um resultado ou, entdo, o valor de uma va- ridvel, em que esté armazenado um determinado con- tetido. Compara-se, entao, 0 resultado obtido no teste ‘com os valores fornecidos em cada clausula “Caso”. A estrutura Select Case funciona praticamente no mesmo tracado da SE que vimos ha pouco, sé que com algumas possibilidades a m Esse comando é muito empregado para simplificar todo o procedimento do programa e eliminar varias etapas. Ele é muito aproveitado em MENUS, nos quais teremos miltiplas escolhas, ou seja, quando precisa- ‘mos escolher uma determinada alternativa entre va- rias que surgirao no decorrer de nossos programas. Vamos imaginar que, conforme o estado selecio- nado, um determinado valor de imposto tera que ser apresentado na tela para 0 usudrio: Case ESTADOSELECIONADO m. Case SP Escreva("Imposto neste Estado é de 10%") Case Ry Escreva("Imposto neste Estado é de 9%") Case AM Escreva("Imposto neste Estado de 11%") Case TO Sree reese error LOGICA DE PROGRAMACAO Escreva("Imposto neste Estado é de 13%") Case MG Escreva("Imposto neste Estado é de 4%") Case RS Escreva("“Imposto neste Estado é de 7%") FimCase De acordo com o exemplo mostrado acima, o valor da varidvel Case é ESTADOSELECIONADO. Caso se- lecionarmos uma dessas varidveis, uma determinada mensagem serd exibida para nés. Veja a seguir qual mensagem sera exibida de acordo com a Case TO: Case ESTADOSELECIONADO Case SP Escreva(“Imposto neste Estado é de 10%") Case R) Escreva("Imposto neste Estado é de 9%”) Case AM Escreva("Imposto neste Estado é de 11%") Case TO Escreva("ImpostonesteEstadoéde13%") Case MG Escreva("Imposto neste Estado é de 4%") Case RS Escreva(“Imposto neste Estado é de 7%") FimCase De acordo com a Case TO, apareceré a mensagem “Imposto neste Estado é de 13%”. 0 algoritmo Case aceita que vocé use quantas condigées (ou eventos) forem necessérias, tornando-as adequadas para es- crever cédigos em circunstdncias em que hd varias opgdes. A estrutura Case vai testar 0 valor de cada estado logo apés termos escolhido um deles e, quan- do for encontrado um ou mais valores coincidentes com 0 escolhido, seré exibida na tela a mensagem pré- -programada e seré dada a continuidade aos proximos comandos. Podemos dizer que a estrutura Select Case ou (Sele- ‘40 de Caso) verifica 0 controle da expressio e, caso 0 valor seja igual ao especificado, ira retornar um resul- tado. Vamos usar um novo exemplo: suponhamos que um programa tenha uma variével CORSELECIONADA, ou seja,a cada cor que vocé selecionar iré aparecer uma mensagem confirmando essa determinada cor. Case CORSELECIONADA Case “vermelho” Escreva(“Vocé escolheu vermelho") Case “azul” Escreva("Vocé escolheu azul”) Case “verde” Escreva(“Vocé escolheu verde”) Case “marrom” Escreva("“Vocé escolheu marrom’) Case “rosa” Escreva(“Vocé escolheu rosa”) Case “laranja” Escreva(“Vocé escolheu laranja") Case “roxo” Escreva(“Vocé escolheu roxo") FimCase Desse modo, caso tenhamos interesse em uma des- sas cores e seleciondssemos uma delas, seria exibida a mensagem confirmando essa cor. Vamos ver a men- sagem que serd exibida na Case correspondente a cor vermelho: Case CORSELECIONADA. Case “vermelho” Escreva("Vocé escolheu vermelho”) Case “azul” Escreva("Vocé escolheu azul”) Case “verde” Escreva("Vocé escolheu verde”) Case “marrom” Escreva(“Vocé escolheu marrom”) Case “rosa” Escreva(“Vocé escolheu rosa”) Case “laranja” Escreva("“Vocé escolheu laranja’) Case “roxo” Escreva("“Vocé escolheu roxo”) FimCase Sabendo que a primeira Case é vermelha, mesmo assim o programa ird verificar até o final dessa classe para ter certeza de que ndo ha mais nenhuma com as ™mesmas caracteristicas, caso tenha, também seré exi- bida a mensagem correspondente a ela. COMANDO DE REPETICAO Utilizamos os Comandos de Repeti¢ao quando aguardamos para que um determinado conjunto de instrugdes ou comandos seja executado, finita ou in- finitas vezes. Vamos aprender dois comandos dessa classe de repeti¢ao, o FOR e 0 WHILE. Isso significa que tudo © que for observado sobre repeticao sera, de alguma maneira, uma variagao desses dois comandos que sao muito utilizados para a construgdo do Comando de Repetigées. 30 LOGICA DE PROGRAMAGAO FOR: usaremos esse comando sempre que conhe- cermos por completo quantas vezes queremos que ‘uma determinada sequéncia seja repetida. WHILE: utilizaremos sempre que na6 conhecermos exatamente quantas vezes a sequéncia serd repetida ou se repetiré para sempre dentro de um lago. * ‘Também costumamos chamar de Lago esse tipo de comando, uma vez que, o programa fica totalmente “amarrado” em determinada sequencia da estrutura. Tendo em vista que em programago frequente- ‘mente precisamos repetir uma mesma sequéncia de ‘comandos varias vezes, mas na maioria dos casos, nao sabemos com antecipago quantas vezes essa sequén- cia de repeti¢ao serd executada. COMANDO DE REPETICAO FOR Vamos comecar falando do Comando de Repeticao FOR e, primeiramente, ver como é definida toda a sua estrutura: For Contador = 1 to 10 Escreva("Esse é 0 comando de repeticao FOR") FimFor Avariavel Contador esté definida com o valor inicial 1, que esté delimitado, ou seja, poderd se repetir até 10, em que o programa serd encerrado. For Contador = 1 to 10 Escreva("Esse é 0 comando de repeticao FOR") FimFor Na sequéncia, temos tudo o que vai ser executado den- tro do FOR, ou seja, seré exibida a mensagem na tela. For Contador = 1 to 10 Escreva(“Esse é 0 comando de repetigao FOR") FimFor Em seguida, o programa chegaré ao FimFor, em que voltard ao CONTADOR para mais uma avaliagdo de re- sultados. Mas vale ressaltar que o programa poderia ter uma continuacao de acordo com a necessidade de cada um. For Contador = 1 to 10 Escreva("Esse 6 0 comando de repeticao FOR") FimFor pos bi ee ilies wh] ee Lf LOGICA DE PROGRAMACAO Na prética, o computador faria esse processamento da seguinte forma: ao chegar a linha de inicio do For, ele colocaria a varidvel Contador com o valor 1. De- pois disso, registraria um aum e, até que ela ndo tenha 0 valor 10 0 comando ird se repetir o tanto de vezes necessério para alcangar o valor destinado. ‘Vamos usar um exemplo cléssico como base. Imagi- ne ter que criar um programa especifico para a emi so de ingressos para uma determinada festa. Seria impresso um niimero determinado pelo usuario. Veja a seguir como seria elaborado esse programa: > VARIAVEIS NUMERODEINGRESSOS do tipo INTEIRO; CONTADOR do tipo INTEIRO; P INICIO; + Recebe o NUMERODEINGRESSOS; + For CONTADOR = 1 to NUMERODEIN- GRESSOS + Imprima um ingresso com 0 CON- TADOR + FimFor DFM; Primeiramente, precisamos saber 0 nimero de ingressos que sero colocados 4 venda para que, as- sim, possamos limité-los. Vamos imaginar que fossem 1000. > VARIAVEIS NUMERODEINGRESSOS do tipo INTEIRO; CONTADOR do tipo INTEIRO; > INICIO; + Recebe 0 1000; Logo na sequéncia, 0 programa entra na classe FOR e indica que a variével Contador comecaria em 1, > VARIAVEIS NUMERODEINGRESSOS do tipo INTEIRO; CONTADOR do tipo INTEIRO; > INICIO; + Recebe 0 1000; + For CONTADOR = to 1000 Depois de efetuado esse procedimento, ele iré im- primir um ingresso com o niémero 1 e chegar, assim, ‘a0 FimFor em que seria acrescentado mais 1 ao valor do CONTADOR, que passaria a ser 2 e ficaria disponi- = i] | vel novamente para o usuério. Faria isso um a um até imprimir o ingresso com o valor 1000, momento em que finalizaria todo o programa. > VARIAVEIS NUMERODEINGRESSOS do tipo INTEIRO; CONTADOR do tipo INTEIRO; P INICIO; + Recebe 0 1000; + For CONTADOR = 1 to 1000 + Imprimaum ingresso com 0 CON- TADOR + FimFor FI ‘Vamos para mais um exemplo! Imagine que precisa- ‘mos elaborar um programa que leia a idade digitada pelo usuario e, logo em seguida, identifique se ele tem 21 anos para que, assim, possa imprimir um mensa- gem para o usudrio. Veja a seguir as varidvels que va- ‘mos utilizar e, na sequéncia, toda a estrutura da classe do Comando de Decis4o FOR: > Varidvel IDADE do tipo inteiro; CONTADOR do tipo inteiro; > INICIO; + Recebe a IDADE; + For CONTADOR = 1 to IDADE >= 21 + Imprime a mensagem (Vocé jé atin- git a majoridade) + Fimfor FIM O programa fica definido da seguinte forma: seré inserido um valor (Idade) pelo usudrio. Logo em se- gulda, o programa faré uma avaliagdo para identificar sea pessoa tem 21 anos ou mais que isso. Caso digitas- semos um valor maior, seria impresso a seguinte frase para ele: Vocé 6 atingiu a maloridade. Em seguida, j4 sobre a classe FimFor, automaticamente retornaria ao CONTADOR em que ficaria disponivel para receber um novo valor. > Varidvel IDADE do tipo inteiro; CONTADOR do tipo inteiro; = Recebe a IDADE; + For CONTADOR = 1 to IDADE >= 21 31 LOGICA DE PROGRAMACAO + Imprimia mensagem (Vocé ja atin- git a maioridade) + Fimfor FIM 0 programa basicamente funciona da seguinte for- ma: recebe a idade do usuério, identifica a mesma e, caso seja igual ou maior que 21, imprime a mensagem para o usuario. Caso seja menor que isso, © programa seré finalizado. COMANDO DE REPETICAO WHILE Diferentemente do For, o While, que quer dizer En- quanto, pode ser usado quando nao sabemos quantas vezes 0 processo terd que se repetir no decorrer de todo 0 procedimento. Dessa forma, caso a condigao seja verdadeira, 0 bloco de comando é executado. Essa classe funciona da seguinte forma: testa a condigao. Se a condigao for falsa, entéo, pula todos 05 comandos do bloco subordinado ao while e passa a executar os comandos apés 0 bloco do while. Se a condi¢ao for verdadeira, entao, executa cada um dos ‘comandos do bloco subordinado ao while. Apés exe- cutar o iiltimo comando do bloco do while volta ao asso 1. 0 comando while deve ser usado quando: + no soubermos exatamente quantas vezes 0 laco deve ser repetido; + oteste deve ser feito antes de iniciar a execucao de um bloco de comandos; + houver casos em que o lago nao deve ser repeti- do nenhuma vez. Aestrutura de Comando de Decisdo WHILE é defi- nida da seguinte forma: ‘While CONDIGAO A SER VERIFICADA do Escreva("Esse & 0 comando de repeti¢ao WHILE") EndWhile Vamos idealizar que para executar determinada tarefa o usuério precise digitar uma senha e, enquan- to ele ndo a acerta, o sistema a solicita infinitamente. Veja como seria essa estrutura: > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; D INICIO; * SENHA = "ABCD" * While DIGITADO<>SENHA do + Pedir para digitar a senha e armazenar na varidvel: DIGITADO. * — EndWhile D> FIM; Vamos analisar esse cédigo com calma, Primeira- mente, o programador definiu que a senha é ABCD. > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; : > INICIO; i + SENHA= “ABCD” “4 Depois disso, 0 programa entra em um lago While. Dentro desse lago, ele pede para o usudrio digitar a senha e armazena o valor digitado na varidvel DIGITA- DO. Enquanto, ou seja, While, o valor digitado estiver, diferente da SENHA, 0 processo se repetira, isto é, 0 usudrio poderd errar infinitamente a senha e o pro- grama ficard preso nesse laco. > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; P INICIO; * SENHA =“ABCD" + While DIGITADO<>SENHA do + Pedir para digitar a senha e armazenar na varidvel: DIGITADO + EndWhile DFM; Sabemos que nos bancos, no e-mail e em todo lugar que colocamos senha, depois de algumas tentativas, 0 sistema nao permite mais que ela seja colocada. Isso. 6 assim para evitar que o usuario fique tentando até. acertar a senha. Para fazer com que isso ocorra, basta melhorarmos um pouco esse cédigo. Vamos ver! > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; ‘TENTATIVAS do tipo INTEIRO: INICIO; * SENHA="ABCD" +. TENTATIVAS = 0 LOGICA DE PROGRAMACAO + While DIGITADO<>SENHA AND TENTA- TIVAS <3 do + Pedir para digitar a senha e arma- zenar na variével: DIGITADO + Acrescentar 1 no valor da varivel TENTATIVAS + EndWhile ‘+ Se TENTATIVAS >= 3 entdo + Escrever na tela (“Excesso de tenta- af tivas”) + Terminar o programa + SeNao + Escrever na tela ("Vocé acertou a senha”) + Terminar o programa + FimSe DFIM; Inicialmente, temos a SENHA que continua a mes- ma: ABCD. Logo abaixo dela, temos a classe TENTATI- VA, que ficara responsavel pela contagem do nimero de vezes em que o usuério ird digitara senha. Esse nti- ‘mero de vezes sera especificado por nés programado- res. Também temos, agora na condigao do lago, dias verificagdes com o operador légico AND. Esse cédigo narrado da seguinte forma: se 0 DIGITADO for DIFE- RENTE da SENHA E TENTATIVAS MENOS QUE 3. Isso quer dizer que, enquanto as duas verificagées forem verdadeiras, o laco ird se repetir. > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; ‘TENTATIVAS do tipo INTEIRO: > INICIO; + SENHA = "ABCD" + TENTATIVAS=0 =While DIGITADO<>SENHA AND TENTATIVAS <3 do De acordo com o programa, toda vez que 0 lago se repete, ou seja, o usuario erra a senha, a varivel TEN- TATIVAS tem seu valor acrescentado a 1. Com isso, logo ela tera o valor equivalente a 3 nao sera mais possfvel digitar a senha, tendo em vista que nao aten- de mais as especificagdes, afina,! 3 ¢ igual a3 e nao é menor. Logo em seguida, temos duas condigdes na classe SE, que se encontra logo abaixo. A primeira condi¢ao é caso © usuario nao acerte as trés tentativas, ou seja, >=3, 0 programa ird mostra a seguinte mensagem: Excesso de. tentativas. Em seguida, iré terminar o programa. > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; ‘TENTATIVAS do tipo INTEIRO: > INICIO; + SENHA = “ABCD” + TENTATIVAS = 0 + While DIGITADO= 3 entio + Escrever na tela ("Excesso de tentati- vas") + Terminar o programa A segunda condigao que é apresentada é a SeNao. Ela estard pronta para realizar 0 comando, caso 0 usu- rio acerte a senha dentro do ntimero de tentativas permitidas. Apés o programa mostrar a mensagem "Vocé acertou a senha’, ele serd finalizado, > VARIAVEIS SENHA do tipo STRING; DIGITADO do tipo STRING; ‘TENTATIVAS do tipo INTEIRO; > INICIO; + SENHA = "ABCD" + TENTATIVAS = 0 + While DIGITADO<>SENHA AND TENTA- TIVAS <3 do + Pedir para digitar a senha e arma- zenar na varidvel: DIGITADO + Acrescentar 1 no valor da variével ‘TENTATIVAS + EndWhile ‘+ Se TENTATIVAS >= 3 entdo + Escrever na tela ("Excesso de tenta- tivas”) + Terminar o programa + SeNao + Escrever na tela (“Vocé acertou a senha”) + Terminar o programa ft Fimse > FM; _— A LOGICA DE PROGRAMACAO ‘Vamos idealizar um exemplo bem simples aonde poderemos observar com facilidade como é todo esse processo de verificagao do WHILE: WHILE acb do a:=a+1; Primeiramente, 0 computador ird verificar a condi- 40 com a seguinte pergunta: A é menor que B? WHILE ach do a:=a+1; Sea resposta obtida for positiva, o comando ai=a+1. & realizado. Caso seja negativa, o comando é descarta- do e segue para o préximo comando. Vamos adicionar um niimero sobre esse programa e ver como ele se sai, Imagine que A tenha o valor equi- valente a 1 e 0 valor de B seja 3. + 16menor que 3? Positivo. A: +1, A=2 0 computador iré realizar essa operacao da seguin- te forma: na primeira explicacao, 0 usudrio digitaré 0 némero 1. Em seguida, o programa iré verificar se 0 niimero inserido é menor que 3. Se a afirmagao felta anteriormente for Positiva, seré dada a continuidade e seré realizado 0 comando seguinte. Do mesmo modo sera realizado caso o usudrio digi- te 0 niimero 2, ou seja, verificard se 2 é menor que 3. Caso essa afirmacao seja Positiva, teré a continuacao, + 1€menor que 3? Positivo, A:=1+1, A=2 + 26menor que 3? Positivo, A:=2+1, A=3 De acordo com o ultimo exemplo, se o valor digi- tado for 3 ou maior que ele, o programa ira validé-lo ‘como Negativo, ira pular todos os comandos do bloco subordinado ao while e passard a executar os coman- dos apés. + 16 menor que 3? Positivo, A:=1+1, A=2 + 2€menor que 3? Positivo, A:=2+1, A=3 + 3.menor que 3? Negativo. Passe para o préxi- ‘mo comand. Basicamente, 0 programa receberd o valor e iré ana- lisar se ele é menor que 3. Se essa afirmagao for Posi- tiva, realizara 0 comando a:=a+1. Se for Negativa, ira seguir um outro comando de acordo com a estrutura, LACO DE REPETICAO Podemos dizer que Lagos Infinitos correspondem a um encadeamento de instrugdes de programa para computador que repete as instrugdes infinitamente por nao haver nenhuma condigao de parada ou por- que a condigao existe, mas nao é atingida nunca. Esse momento pode ser definido pelo programador em va- rias etapas. Esse assunto pode fazer com que um programador fique preso em um laco para sempre, podendo travar 0 programa a ser utilizado ou até mesmo 0 computador. Em sistemas mais remotos, com multitarefas, os lagos infinitos normalmente dificultavam todo o sistema. J& na atualidade, com os modelos mais sofisticados de multitarefa, os Lagos Infinitos procedem em um con- sumo maximo em relacdo ao tempo do processador, ‘mas 0 procedimento geralmente pode ser finalizado pelo usuario. Podemos dizer que, em varias hipdteses, esse co- mando 6 um comportamento j4 esperado. 0 termo “lago infinito” & geralmente usado quando esse efei- to ndo 6 o resultado aguardado, isto é, quando hé um problema de programacao. Vamos ver em qual situasdo poderia acontecer um Lago Infinito indesejado. Repare que no programa a seguir ha uma classe que est4 em negrito. Esse é um comando essencial na estrutura. Sem ele, o programa receberia a senha e, caso o usuario nao aacertasse, ele ia entrar em um lago infinito, pois nao chegaria até a préxima classe e nem retornaria para poder pedir a senha novamente, > INICIO + Escreva na tela ("Digite a senha: ") + Senha= 10 + Numero = Digite um numero While Digitado diferente da senha + Escreva na tela (“Senha errada: “) + Escreva na tela (" Digitar a senha: ") + Numero = Digite um numero > EndWhile + SE numero = senha ENTAO + Escrevanna tela (“Correto! “) + FimSe LOGICA DE PROGRAMACGAO EXERCICIOS 01 - O que é uma Estrutura de Decisio? ‘A) E um Comando para validacio. 8B) So instrugdes que controlam todo o fluxo de exe- uso do programa. €) 0 Comando de Decisao é usado sempre que o pro- rama caia em um laco infinito. D) Comando de Decisdo séo etapas a serem tomadas 02 - Quando utilizamos Comando de Decisio SE? A) Sempre que precisarmos de miiltiplas escolhas para sair de uma condigao. 8) Para completar uma estrutura no decorrer do pro- erama, C) Sempre em saidas de decis6es. 1D) Quando hé necessidade de testar uma condic5o antes de executar uma aco. 03 - A estrutura de decisio, é utilizada para testar, na condicao, uma Unica expresso ou variével que produz um resultado ou, entéo, 0 valor de uma varidvel em que est armazenado um determinado contetido. Compara-se, assim, o resultado obtido no teste com os valores fornecidos em cada cléusula. A) SE. B) Select Case. C) Comando de Repeticao. D) FOR. 04 - Quando utilizamos o Comando de Repetico? ‘A) Quando desejamos que um determinado conjunto de instrugdes ou comandos seja executado, finito ou in- finitas vezes. B) Os Comando de Repeticdes so instrugdes que sio, utilizadas automaticamente. ) Apés uma decisio ser tomada para vincular a estru- tura com possiveis novas repeticées. D) Todas estdo erradas, 05 - Quando 0 Comando de Repeticiio FOR deve ser usado? ‘A) Quando houver casos em que o laco nao deve ser repetido nenhuma vez. B) O teste deve ser feito antes da execucdo de um blo- co de comandos. €) Sempre que soubermos exatamente o numero de vvezes que o laco deve ser repetido. D) Todas esto corretas. 06 - Qual a diferenca entre o Comando de Repetic3o. FOR e WHILE? ‘A) FOR & um comando limitado, enquanto o WHILE usamos quando nao sabemos quantas vezes precisare- ‘mos repetir o processo. B) Utilizamos FOR quando temos uma cascata de deci- ses, enquanto WHILE podemos delimitar a quantidade de vezes a ser repetida. C) FOR é usado apenas em decisdes tnicas, WHILE re- pete apenas até 0 valor 1000. D) WHILE nao é utilizado em repetices, FOR poder, ser utilizado finita e infinitas vezes. Ra SS IS EE CONCLUSAO Nesta aula apostilada, vocé teve um aprendizado mais detalhado sobre Estruturas de Decisdes. Aprendeu que, muitas vezes, precisamos tomar decises no decorrer do algoritmo. Dissemos, também, que o Comando de Deciséo SE pode ser usado da seguinte forma: caso determinada condicao seja atendida, o programa segue um caminho e, se no for ele, seguird outro pré-determinado. Em relacdo ao Comando de Decisao Case, dissemos que ele, basicamente, verifica o controle da expresso e, caso o valor seja igual ao especificado, ele ird retornar um resultado. Utilizamos muito os comandos de repeti¢io quando desejamos que um determinado conjunto de instruges ou comandos seja ‘executado, finita ou infinitas vezes. Dentro dessa classe de repeti¢o, conhecemos dois comandos: 0 FOR, que é um comando limitado, ou seja, quando nés programadores sabemos quantas-vezes ele terd que se repetir, € 0 WHILE, que ¢ utilizado quando nao sabemos as vezes que o programa ird se repetir. NAo podemos esquecer do Lago de Re- peticao, pois dizemos que Lacos Infinitos constituem um encadeamento de instrugSes de programa para computador que repete as instrucbes infinitamente ou por nido haver nenhuma condicSo de parada ou porque a condicdo existe, mas nunca é atingida Daremos continuidade com todos os conceitos de Légica de Programacdo nas préximas aulas, portanto, dedique-se ‘a0 maximo para obter um excelente desempenho. Caso tenha restado aleuma duvida, aconselharemos que reveja » todos os conceitos que foram vistos durante a aula e refaca os exercicios Até breve! ps opyrant OBJETIVOS DA AULA Conhecer a Orientacao a Objetos; Conceito de Classe; Conceito de Objetos; Heranca Simples e Heranca Miltipla; Usar e conversar com objetos; Encapsulamento. O QUE VAMOS FAZER Assim como vimos na aula interativa, vamos conhe- cera programagao orientada a objetos que, baseando- -se em classes, determina atributos e métodos para delimitar seus integrantes. Também verenos os tipos de herangas, simples e miltiplas, além de comandar as ages desses objetos e encapsular os dados da clas- se. Esperamos que se dedique ao maximo e preste muita atengdo nos t6picos para que, assim, consiga um étimo desempenho no curso e, consequentemen- te, obtenha sucesso profissional! PROGRAMACAO ORIENTADA A OBJETOS Por volta dos anos 70 e 80, ocorreu uma grande proliferagdo de programadores no mundo. Com isso, muitos projetos estavam em produgdo e na busca para melhorar a organizagdo e garantir o reaproveitamen- to de trabalhos. Foi, entdo, que sungiu o conceito de Orientacao a Objetos. A idela principal desse tipo de programagao é re- presentar situagdes da vida real da melhor maneira possivel no ambiente computacional. Diferentemente dos demais modelos, que traba- Tham com iniimeras linhas de cédigos, seguindo esse molde trabalhamos com uma infinidade de objetos, que representam a vida real, interagem entre sie bus- cam atender alguma tarefa. Falando assim, fica parecendo algo muito complica- do e cientifico, ndo é mesmo? Mas nao é nada diss Para facilitar a compreensdo, vamos dividir os assun- tos e apresentar diversos exemplos praticos. O CONCEITO DE CLASSE Dentro desse novo tipo de programacio, trabalha- mos com Classes, que so estruturas que retinem um conjunto de objetos com caracteristicas similares, além de definir o comportamento de seus integrantes. Veja o exemploa seguir: Imagine a Classe Pessoa. Ela possui alguns atribu- tos, tais como: I cabega 2bracos 2méos Esses itens da Classe definem seus integrantes e, entéo, para ser uma pessoa é necessério ter tais atri- butos. No entanto, além disso, é necessario que exis- tam métodos. 0 que seria isso? Uma pessoa anda, corre, respira, come, fala e tudo mais, certo? Entdo, essas agdes em programagao re- cebem 0 nome de métodos. Continuando 0 exemplo anterior, podemos dizer que a classe completa ficaria assim: Classe Pessoa + Atributos: + Leabeca + 2bracos ————— 36 LOGICA DE PROGRAMACGAO iM + 2méaos + Métodos: + Andar + Correr + Respirar + Comer + Falar Com essa parte bem explicada, vocé deve estar pen- sando: " Afinal, para que serve isso? Em que vou usar?” Vocé se lembra o porqué da criacao da Orientacao a Objetos? Foi para que projetos fossem melhor organi- zados, mas também para que houvesse a possibilidade de reaproveitamento e economia de tempo e dinheiro. Pois bem, imagine, agora, que um programador de uma empresa de software tem que elaborar um proje- to para uma loja de materiais para construcdo, em que sero cadastrados todos os clientes que, por sinal, nao so poucos! Usando a orientagao a objetos, ele cria a Classe Clientes com seus atributos e métodos para usar no programa. Com isso, o cédigo referente a essa estrutura ficaré guardado para ser utilizado quando for preciso. Sendo assim, todo e qualquer programa que precisar de uma Classe Cliente nao exigiré um re- trabalho. O CONCEITO DE OBJETOS Um objeto é qualquer entidade que pode ser repre- sentada, que existe e possui caracteristicas definidas. Para utilizagao de uma classe, primeiramente, temos que criar um objeto que, em programagao, chamamos de insténcia. Veja o exemplo a seguir para deixar esse conceito mais claro: ‘Temos novamente a Classe Pessoa, porém, dessa vez, com mais atributos: Classe Pessoa + Atributos: = Lcabeca 2 bragos 2maos Nome Peso Idade = Métodos: + Andar Correr Respirar Comer Falar prereset Seri Agora, imagine uma pessoa especifica, o André. Ele seria uma instancia, um objeto vindo dessa classe. André = Classe Pessoa Objeto André + Atributos: 1 cabega = Sim 2 bragos = Sim 2 mao: Entéo, 0 objeto André herdou os atributos e méto- dos vindos da Classe Pessoa, o que faz dele uma pes- soa, porém com caracteristicas dos atributos diferen- tes que fazem dele um individuo diferente de outros. Entdo, cada ser é uma instancia diferente. HERANCA SIMPLES E MULTIPLA. © conceito heranca permite que classes comparti- Them atributos e métodos e reaproveitem cédigos ou comportamentos generalizados. Dessa forma, a criacao de subclasses ou classes filhas é facilitada. Encontra- mos dois tipos de variacdo para essa ferramenta, veja: + Heranga Simples. Na heranga simples, subclasses ou classes filhas de- rivam de uma tinica superclasse ou classe pai e her- dam dela o cédigo. Veja 0 exemplo: Classe Pessoa + Atributos: + Nome RG CPF E-Mail Endereco A partir disso, podemos criar a Classe Funcionério ea Classe Cliente. Classe Funciondrio © Atributos: LOGICA DE PROGRAMAGAO Nome RG CPF E-mail Endereso Fungao Salario + Setor Classe Cliente © Atributos: + Nome + RG + CPF + E-Mail + Enderego + Limite de Crédito © Preferencias ‘Temos, assim, a seguinte formagao: Pessoa (Super Classe) Cliente e Funciondrio (Sub-Classes de Pessoa) + Heranga Miltipla. Nesse caso, subclasses herdam atributos e métodos de mais de uma superclasse. Tal processo é presente apenas em alguns tipos de linguagem de programa- 0, pois, se realizado com frequéncia, pode gerar uma codificacao confusa e dificultar a manutengao do céd go. No entanto, como ela existe e pode ser usada, veja o exemplo: ‘A Super Classe Pessoa e as Subclasses Funcionério e Cliente podem ser utilizadas em um programa de uma loja onde quem trabalha, também consome, o que da origem a uma nova subclasse. Classe Funcionério - Cliente + Atributos: + Nome + RG + CPF + E-Mail + Enderego + Fungao + Salério + Setor + Limite de Crédito + Preferencias E €assim que uma heranca miltipla ocorre: uma nova subclasse com todos os atributos de duas outras classes. USAR E CONVERSAR COM OBJETOS Para fazer com que nosso objeto realize algum mé- todo ou para obtermos alguma informagao dele, temos que enviar, via programagio, mensagens que o fargo obedecer, mas claro que esses comandos devem estar corretamente estruturados para serem cumpridos. ‘Vamos utilizar o objeto André para que fique mais claro, André = Classe Pessoa Objeto André + Atributos: + Lcabeca = Sim + 2bragos = sim + 2maos + Idade = 21 anos + Métodos: Andar Correr Respirar Comer Falar Se desejarmos que ele ande, bastaria a seguinte mensagem: André.Andar(100 metros) André é 0 objeto e, separado por ponto, chamamos ‘0 método Andar, além de indicarmos a disténcia (100 metros). E como ja dissemos, também podemos solici- tar alguma informago, por exemplo, sua idade. Para isso, bastaria enviar a mensagem: IdadeDaPessoa = André.Idade Nesse caso, falamos que a variavel IdadeDaPessoa recebe o valor vindo do atributo Idade. ENCAPSULAMENTO Outros programadores poderdo utilizar todas essas classes que criamos e, para esconder os detalhes do funcionamento de seus atributos, é utilizado 0 encap- sulamento, £ algo como um celular. Vocé nao precisa entender de telefonia, nem de eletrOnica para utiliza- -lo. Basta digitar os niimeros e falar: Encapsular é isso, nao € necessario entender como algo funciona e, sim, apenas saber usé-lo. Novamente no caso da pessoa, para fazer 0 objeto andar, 0 programador nao precisa saber como funcio- 3 Presser = 1 LOGICA DE PROGRAMAGAO nao método correspondente, bastadarocomandoeo —_Para finalizar nossa aula, faca alguns exercicios que objeto realiza: André.Andar(100 metros) ajudarao na fixagao dos conceitos que vimos hoje. Es- E por mais que um método seja complexo, sua uti-_peramos que tenha gostado do que aprendeu e que, de lizagao depende apenas do método a ser chamado da _agora em diante, utilize essas informagdes da melhor forma correta. forma possivel. Até a proxima! EXERCICIOS 1 Escolha a alternativa correta: a) Classes so compostas por atributos e métodos. b) Através das herancas, classes compartilham cédigos. ¢) E possivel realizar comandos e obter informagSes sobre o objeto através de mensagens via programacdo. 4) Encapsular ¢ esconder de outros programadores os detalhes do funcionamento de um método. €) Todas esto corretas. 2- Ligue os pontos. 1 Atributos a) Compartithamento de cédigos. 2- Métodos b) Protecdo de detalhes do funcionamento, 3-Encapsulamento ©) Caracteristicas. 4-Heranca d) Agées. 3 Marque Verdadeiro ou Falso. © encapsulamento esconde toda a estrutura do cédigo e impede sua manipulacao. ( ) Para fazer parte de uma classe, um objeto necessita ter os mesmos atributos e métodos nela descritos.( } E aconselhavel nao utilizar varias vezes o esquema de heranca multipla.( ) Herancas simples so mais comuns e simples de se trabalhar. ( ) Sa ere OBJETIVOS DA AULA + Conhecer o que é 0 Small Basic; + Realizar Download e instalar o Small Basic; + Aprender a trabalhar com o programa; + Ver como elaborar pequenos programas para trabalhar com niimeros. © QUE VAMOS FAZER Hoje, iremos nos aprofundar nos contetidos vistos na atividade anterior. Veremos mais sobre o funciona- mento do Small Basic e sua principal ferramenta, a In- telliSense. Além disso, vocé também praticaré mais al6- gica da programacao, através da criagao de programas desenvolvidos especialmente para te introduzir a este mundo fantastico de cédigos e linguagens com 0 qual séo formados os programas de computador. Contamos com seu entusiasmo para mais este desafio! Boa aula! SES ro ee SS NS O QUE E O SMALL BASIC? Desenvolvido pela Microsoft Corporation, o Small Basic é uma ferramenta destinada a iniciantes em programacao. Com ele, vocé cria programas de forma simples e quase que intuitiva, afinal, basta saber um pouco sobre a légica para poder usé-lo. Além de tudo, ele ainda conta com a ajuda de uma importante ferra- menta, a IntelliSense. Assim, seus jogos e programas podem se tornar reais antes do que vocé imaginal Este software permite, de maneira dindmica, colocar em pratica toda a teoria que vimos até aqui! CONHECENDO A INTELLISENSE Com certeza vocé deve estar se perguntando: “Mas o que éa Intellisense?” Essa fantastica ferramenta fol desenvolvida pela mesma criadora do Small Basic e é de grande ajuda durante 0 uso do programa. Ela é um recurso inte- rativo que autocompleta os cédigos que estao sendo digitados. Sempre que inserimos um caractere vali- do para elaboracao do programa, ela 6 aberta como uma pequena janela Pop up e nos mostra as opgdes de cédigos possiveis paraa situagdo em que sua estru- tura se encontra. Vocé percorre as alternativas atra- vés das setas direcionais do seu teclado e seleciona a NT E nao para por ai! A IntelliSense também nos mostra BAIXANDO E INSTALANDO O SMALL BASIC Small Basic é livre e esté disponivel para que todos possam usé-lo, Para isso, basta fazer o download do programa através do site do mesmo e instald-lo em seu computador. Vamos ver como fazer isso? > Realizando o Download: + Primeiramente, acesse o site www.smallbasic.com. Na pagina inicial do programa, clique sobre o icone Download, localizado ao canto direito da tela. ¥ Tos = ; 7 LOGICA DE PROGRAMACAO que quiser pressionando Enter. Além disso, ela tam- uma pequena explicagao sobre o item que est sele- ‘bém reconhece as varidveis que vocé cria e identifica cionado, assim, quando nao temos certeza sobre qual quando podem ser necessarias, 0 que evita que fique _cédigo utilizar em determinado local, podemos contar digitando-as varias fases e agiliza muito seu trabalho. com mais esse recurso. B Small Basic + Depois disso, é mostrada uma mensagem que pergunta se queremos salvar o programa. Clique em Salvar para que ele seja armazenado na sua pasta de Downloads, ou seja, aquela pasta configurada para receber todos os arquivos que vocé baixa através do seu navegador. ¥ ese savar ou executar Smalbasc (70 MB) de downlosd microsoft.com? + Feito isso, a mesma janela mostraré a porcentagem do Download que jé foi conclufda eo tempo restante para o término do mesmo. ¥ > Quando terminado o Download, temos trés opgées disponiveis, sao elas: ‘+ Executar: como o nome sugere, esta opcdo executa o arquivo, iniciando sua instalacdo diretamente. + Abrir pasta: abriré a pasta em que o arquivo baixado foi salvo. + Exibir Downloads: mostra um lista com todos os Downloads realizados no navegador. ¥ Oem ont x INICIANDO A INSTALACAO: - Com o download concluido, jé podemos iniciar a instalago do software. + Para isso, basta clicar em Executar ou ir até o arquivo e dar um duplo clique sobre o mesmo. + Com isso, é mostrada na tela uma janela que nos dé boas-vindas ao instalador do Small Basic. Entao, ape- nas clique em Next para prosseguir. es a1 Rtesteeman tere, (Sree ttn yar mae Gatenwcnsuee Agora, é exibido o termo de licena do programa. Ele visa orienté-lo a tudo que estard submetido ao uti- lizar 0 programa e, também, sobre direitos autorais, etc. Apés terminar de lé-lo, marque a caixa I accept the terms in the license Agreement para confirmar alleitura e clique mais uma vez em Next. LOGICA DE PROGRAMACAO Isso nos abre diversas opedes de linguagens. Clique sobre a pequena seta da alternativa Brazilian Portu- guese e, dentre os itens mostrados, selecione o pri- meiro, como mostra a imagem a seguir: ¥ Com isso, pedimos ao instalador que acrescente a lingua Portugués do Brasil no programa. Vale lembrar, também, que, neste caso, a necessidade de instalacao de um idioma pode variar de acordo com as configura- Ges de regio da sua maquina. Mais uma ver, clique em Next. Chegamos, por fim, na tiltima janela antes da instalago. Ela nos indica que todas as configuragdes que haviam para ser fei- tas ja estéo prontas. Portanto, clique em Install para comegar. ¥ 3 Hi i Continuando, na janela, temos a opgdo que nos per- mite instalar outros idiomas, como o portugués, por exemplo, o que facilita nossa compreensao do progra- ma. Para realizar esse procedimento, clique sobre 0 pequeno sinal de Mais (+) no canto da opcdo Main Files. ¥ Uma barra mostra o progresso da instala¢do. Quan- do concluda, clique em Finish para sair do assistente de instalagao. V Pam a ee eS a cS 5. = on Com o Small Basic instalado em sua maquina, vocé terd a oportunidade de exercitar seus conhecimentos em légica da programagio na sua casa, Vocé poder revisar os exercicios propostos em aula, além de executar outros programas disponibili- zados no seu material unicamente para seu desenvol- vimento! ‘Agora, vamos logo ao que interessa: conhecer este excelente software! Como deve ter percebido, obter e instalar 0 progra- ma sao passos simples, que realizamos em poucos mi- nutos! ser RS cts PRIMEIROS CONTATOS COM O SMALL BASIC Como falamos no inicio desta aula, 0 Small Basic foi desenvolvido para iniciantes em programacao. Sendo assim, sua interface de usuario, ou seja, a tela que utilizamos para interagir com o programa é bastante simples. ___ Logo vocé perceberd isso por conta, afinal, quando se deparar com softwares comerciais de programacao, aque- J —_les utilizados por profissionais, notard o quanto eles podem ser complexos. Claramente, isso nao é motivo algum para preocupasdo, pois, assim que obtivermos dominio sobre programas simples como este, estaremos com _certeza preparados para todos os outros! E ‘Vamos entender os itens que compe o Small Basic. As principais areas do programa sao: o Editor, identifica- do por [1], a Barra de Ferramentas [2] e a Area de Trabalho [3]. ¥ a Que tal sabermos um pouco mais sobre cadaum? —_abrirmos um outro trabalho, este vira em um novo Editor, posicionado sobre o mostrado atualmente. Editor: ele é semelhante ao bloco de notas. £ nele Wij que digitamos os cédigos dos programas que quere- _ Barra de Ferramentas: como o proprio nome diz, mos desenvolver. No Small Basic, podemos ter mais _ nesta parte temos os comandos do Small Basic. Com rie de um Editor aberto ao mesmo tempo e, sempre que _ ela, temos op¢des de, por exemple, criar novos arqui- Ci 43 -_ jee vos, abrir arquivos existentes, salvar, recortar, copiar € colar arquivos. Também nao podemos esquecer de um comando da Barra de Ferramentas que é sempre mui- to utilizado, que é 0 Executar. Ele nos permite testar 0s programas que estamos elaborando. Assim, temos uma viséo de como ele esté saindo e se algo estiver errado, ao invés de executar o programa, serd exibida uma pequena aba na parte inferior da tela nos infor- mando que tipo de erro est acontecendo e que linha ‘mesmo se encontra. Area de Trabalho (Surface): 0 nome também diz tudo, é a drea geral do Small Basic. E nela que ficam dispostos os Editores que estamos utilizando durante nosso trabalho. Além disso, existe, na area de trabalho, uma coluna, no canto direito da tela. Ela é uma ajuda que nos mostra informagdes a respeito do cédigo que estamos utilizando. ‘TextWindowWriteLine("Bem-vindo ao mundo da programagao!”) Mas o que este cédigo que dizer? Sabemos que quando digitamos um c6digo estamos passando ordens ao computador e que elas devem ser extremamente claras e objetivas. A linha representada acima é um comando. Nela, pedimos ao computador que exiba na janela de execugo do programa o nosso texto, veja: ¥ 1. TextWindow= é o nome da janela preta em que so exibidos os programas executados. Portanto, a0, inciar 0 cédigo dessa forma, estamos informando ao computador que queremos que os cédigos restantes sejam executados na TextWindow, que significa janela, de texto, 2, WriteLineQ)= com este comando, informamos & maquina que inseriremos caracteres, ou seja, letras, niimeros etc, em uma linha. Estes caracteres ficarao dentro dos parénteses. Entdo, até 0 momento, dize- mos que, na janela de execugdo serd inserido alguns caracteres para exibicao. 3. "Bem-vindo ao mundo da programacio! dissemos ao computador que iremos inserir caracte- res na TextWindow, mas, para que esses caracteres formem um texto que possa ser exibido, temos que transformé-los em String. Eé justamente para isso que inserimos as aspas (“"). Com isso, dizemos a ele que 0 contetido digitado é simplesmente um texto para ser exibido. Como pode perceber, a légica da programacao é algo muito interessante, concorda? No entanto, saiba que para trabalhar com ela é necesséria muita aten- LOGICA DE PROGRAMACAO FAZENDO USO DO PROGRAMA ‘Agora que j4 conhecemos o Small Basic, veremos como trabalhar nele! Afinal, acreditamos que a parte mais esperada é a pratica, no é mesmo? Mas para que possamos praticar, devemos saber como trabalhar ‘com o software e evitar, assim, equivocos desnecessa- rios. Quando abrimos o Small Basic, nés nos deparamos ‘com sua area de trabalho, em que jé existe um Editor aberto. Isso significa que, logo que iniciado, ele j4 est pronto para ser usado. Sendo assim, vamos supor que queiramos executar um programa simples, que ape- nas exiba o texto “Bem-vindo ao mundo da programa- 40!” na tela. Para isso, utilizaremos o seguinte codigo: ¥ 0, afinal, conforme seus conhecimentos no assunto vao sendo ampliados, os programas vao ficando cada vez, mais complexos. Apesar de exigir atengdo, nao pense que elaborar programas grandes, que envolvam muitos cédigos, seja complicado, afinal, com deve se lembrar, temos no Small Basic a IntelliSense. Em um cédigo pequeno como este que utilizamos como exemplo, ela seria uti- lizada em duas situagdes, observe a seguir: Para inserirmos TextWindow, digitarfamos apenas a letra “T" e, com a IntelliSense sendo mostrada, teclaria- ‘mos a seta direcional para balxo duas vezes e pressiona- riamos Enter. ¥ Em seguida, ao digitar 0 ponto (.) que separa os cédi- 0s, a Pop up ja seria mostrada novamente. Como o in- tuito é inserir WriteLine, digitarfamos “W" e uma vez a seta direcional para baixo. Confirmariamos com a tecla Enter» Note que esta janela é realmente muito iitil e de facil utilizago. Agora, veremos como nao perder os nossos trabalhos depois de prontos! SALVANDO PROJETOS LOGICA DE PROGRAMACAO OT Tertvindornn Uma coisa muito importante é sabermos salvar corretamente os nosso trabalhos para evitar que eles sejam perdidos depois de prontos: Para salvar um programa, basta clicar sobre o botao Salvar, na area Arquivo, da isso, a janela Salvar como é mostrada. Vamos conhecer seus principais itens: ¥ a) Salvar em: esta area nos permite escolher 0 des- tino que nosso arquivo sera salvo. Clicando sobre a pequena seta no canto esquerdo da barra, temos di poniveis as opgdes que podemos seguir. B) Nome: como pode imaginar, neste campo, digita- -se 0 titulo que o arquivo receberd ao ser salvo. C) Salvar: depois de definido o titulo e o local em que 0 arquivo ser salvo, clique em Salvar para con- cluir. D) Criar Nova Pasta: gera uma nova pasta no local escolhido pelo campo Salvar em. Isso é muito impor- tante, pois, quando salvamos um programa, podem ser gerados até quatro arquivos de extensGes diferentes dos nossos programas e, para manté-los organizados, criamos uma nova pasta para 0 projeto. Assim, tudo que se refere a ele fica armazenado no mesmo local. INICIANDO A PRATICA ‘A melhor maneira de fixar os conhecimentos so- bre a logica da programacao é praticando, afinal, esta 6 uma atividade em que, depois de ter a base inicial, vocé constréi suas préprias habilidades conforme sua dedicacao. Comegaremos, entao, cada vez mais, utili- zar o Small Basic na elaboragao de programas. Assim, além de nossa atividade ficar cada vez mais dinamica e divertida, vocé evolui profissionalmente! aie LOGICA DE PROGRAMACAO > Dividindo dois nimeros: Faremos um programa de divisao entre dois nime- ros. Nele, 0 usudrio digitaré o primeiro valor e, em se- guida, o segundo. Entdo, seré exibido o resultado da divisio de um pelo outro. Ao trabalho! a) Em seu computador, abra o Small Basic através do menu Iniciar> Todos os Programas> Small Ba- sic> Microsoft Small Basic. b) Antes de qualquer coisa, pediremos que, na jane- la de execugdo, a TextWindow, seja exibida uma des- crigdo do nosso programa para informar ao usuario para que ele serve. A descri¢ao poderd ser a seguinte: “Programa para dividir dois nimeros:”. Sendo as- sim, sem esquecer de utilizar o auxilio da IntelliSense, insira na primeira linha do Editor o cédigo: ‘TextWindow.WriteLine( "Programa para dividir dois nimeros:”) ) Em seguida, devem ser mostradas instrugdes para que a pessoa que esteja utilizando nosso trabalho saiba o que fazer. Essas indicagdes de uso devem ficar logo abaixo da primeira. Portanto, pressione Enter para ir a linha dois e, entdo, digite o seguinte cédigo: ‘TextWindow:WriteLine( Digite o primeiro valor:”) 4) Devemos informar para o computador que ele deverd receber o primeiro valor logo depois deste tex- to. Portanto, deveremos inserir o comando Read, que permite a insergo de caracteres e a variavel primei- ro, que sera preenchida com 0 niimero que o usuario digitar. Pressione enter para irmos a terceira linha e, entao, adicione o seguinte cédigo: primeiro = TextWindow.Readl) Dessa forma, fizemos a primeira parte do nosso programa! Até aqui, informamos ao computador que ele devera coletar 0 primeiro mimero. Seu trabalho deve estar semelhante ao mostrado a seguir: Continuaremos com nossa atividade construindo, agora, a segunda parte. ty e) V4 para a linha quatro com o auxilio da tecla En- ter, Assim como anteriormente, sera necessério pedir que a maquina exiba um texto que pega ao usuario para inserir o segundo valor e, ento, um espago para que esse ntimero seja digitado. Portanto, insira os cé- digos como mostrado a seguir: ‘TextWindow.WriteLine(“Digite o segundo valor:”) segundo = TextWindowRead\) “Textndbe rita ine(Progrones pare dividin dale winroa ‘TesthindowriteLine(Oigite © primeire valor") rlnnre» Tertsina tnd) sundown") Programa para dividr dois ndmeros; © Ineo ‘* Receber 0 PRIMEIRO valor; ‘© Receber 0 SEGUNDO valor; resultado=primeiro/segundo + Diviir o PRIMEIRO pelo SEGUNDO; ‘Text Window:Writetine("O resultado da divisSo dos dois &") + Informaro resultado obtido; ‘Text Window.Writetine(resultado) + Fim DICAS E CURIOSIDADES Em varios momentos vocé poderd se deparar com sinal de parénteses () nos programas e, até mesmo, em operagdes matematicas, Mas saiba que isso é muito comum. Nas aulas de matemética aprendemos que sempre calculamos primeiro as contas que esto dentro dos parén- teses. Na programaco é a mesma coisa. Desse modo, ao se deparar com um cédigo que pede para multiplicar- ‘mos dois nimeros e para que o resultado seja dividido, saber que a multiplicagao estar em parénteses para que seja realizada primeiro. LOGICA DE PROGRAMACAO FACA VOCE MESMO- Para que vocé possa praticar ainda mais, seguem al- guns pseudocédigos para vocé desenvolver projetos no Small Basic. Lembre-se que, se em algum momento sur- git uma divida, basta consultar a teoria acima, afinal, ela foi desenvolvida para 0 seu desenvolvimento! Saiba, também, que no final desta apostila, ha um gabarito, ‘onde poderd encontra os cédigos dos exercicios a seguir. 1) Célculo de IMC (Indice de Massa Corpérea) Vocé com certeza jé deve ter ouvido falar sobre o IMC, que € uma medida que calcula o Indice de Massa Cor- poral de uma pessoa, adotada pela OMS (Organizacdo Mundial de Sauide) para medir a obesidade. Para realizar © calculo deve-se dividir 0 peso da pessoa por sua altura a0 quadrado, ou seja, devemos dividir 0 peso da pessoa por sua altura vezes altura. Com o resultado em maos, basta ver uma pequena tabela que nos informa se a pes- soa esté ou ndo em seu peso ideal. Veja o exemplo: ‘Se Marcos pesa 80kg e tem 1.80m de altura, o calculo de seu IMC é realizado da seguinte maneira: '80/1.80? ou 80/(1.80*1.80) ‘Seu IMC 6 igual a: 24,69 Isso significa que ele esté em seu peso ideal, como pode conferir na tabela abaixo: Tabela de IMC A tabela de Indice de Massa Corporal é uma medida utilizada para medir a obesidade adotada pela Organiza- do Mundial de Sade (OMS) e, também, & considerada padrdo internacional. Saiba que se uma pessoa possui o sobrepeso ou a obesidade, indicados pelo IMC, elas pos- suem maior fatores de risco para doencas como a hiper- tensio arterial, a doenca arterial coronariana e a diabe- tes melittus, além de outras patologias consideradas de alto risco para a Satide Publica Resultado ‘Abaixo de 17 Muito abaixo do peso Entre 17 ¢ 18,49, ‘Abaixo do peso Entre 18,56 24,99 Peso normal Entre 25 € 29,99 Entre 30 € 34,99, Entre 35 € 39,99, ‘Acima de 40 ‘Acima do peso ‘Obesidade | Obesidade Il (severa) Obesidade il (mérbida) Para faciltar ainda mais este célculo, vocé pode cons- truir um programa que o realize e depois mostre 0 re- sultado. Assim, basta comparar o resultado na tabela e identificar 0 IMC. Para elaborar no Small Basic um pro- grama que faca isso, siga o pseudocédigo a seguir: + Célculo de imc: INICIO; “Digite seu peso:”; Recebe 0 PESO; “Digite sua altura: Recebe a ALTURA; RESULTADO ¢ igual ao PESO dividido pela ALTURA ao quadrado; * "Seu IMC é:” Mostra RESULTADO; + FIM, Lembre-se: para realizar a multiplicago antes da divi sdo, ela deve estar entre parénteses. € a altura sempre deve ser separada por ponto (.): 1.80. 2) Muttiplicando dois nimeros Que tal construir um programa que multiplique dois intimeros e Ihe mostre o resultado? Para isso, tenha como base o pseudocédigo a seguir ‘+ Programa para multiplicar dois niimeros; + Inicio + “Informe o primeiro valor:” Receber 0 PRIMEIRO valor; “informe o segundo valor:” Receber 0 SEGUNDO valor; RESULTADO ¢ igual o PRIMEIRO mul- tiplicado pelo SEGUNDO; + "Oresultado é:” ‘+ Mostrar RESULTADO; + Fim Excelente! Com isso, terminamos nossa atividade! Ela foi apenas uma introducao ao Small Basic para que voc8. pudesse ver suas principais funcionalidades. Como deve, ter percebido, com ele é possivel fazer coisas incriveis! E. exatamente isso que faremos nas nossas aulas seguin- tes! Esperamos revé-lo muito entusiasmado para nosso. novo encontro. Até a proximal OBJETIVOS DA AULA + Programar utilizando as Tomadas de Decisao; + Elaborar no Small Basic, com a Estrutura de De- iso, um cédigo para controlar um determina- do produto; ‘+ Reforcaremos os conceitos a respeito de Pseu- docédigo e Linguagem de Programacao; © QUE VAMOS FAZER Iremos nos aprofundar nos contetidos vistos na atividade anterior. Faremos um cédigo que, em certa parte do programa, terd a verificagio da quantidade de produto para alertar o usudrio que o estoque esté baixo demais ou dentro dos padrées normais. Iremos trazer para a programacao real aquele exemplo, bastante usado em nossas aulas anteriores, que responde para o usuério se 0 aluno passou ou 1ndo de ano, mediante os valores inseridos sobre ele LOGICA DE PROGRAMACAO la 08| Estruturas de Decisdo e Repeticao na Pratica ‘+ Traremos para a programacdo, 0 cédigo de Emisso de Ingressos para aprender ainda mais sobre Comando de Repetigo FOR; + Utilizando o WHILE, transformaremos o pseu- docédigo do cédigo de senha que vimos em uma de nossas aulas para testa-lo no programa, e observaremos e relembraremos a diferenga entre 0 pseudocédigo. Utilizaremos, ainda, o Comando de Re- petig&o FOR para destacar a importancia do lago fini to de repeti¢ao em programacao. Também veremos 0 ‘comando WHILE que, para falar a respeito, traremos 0 ‘cédigo em que o usuario precisa acertar a senha. Pres- te bastante atengao em tudo que ser visto na apostila, pois serd de grande importancia os assuntos aborda- dos! Tenha uma boa aula! 49 od LOGICA DE PROGRAMACAO ESTRUTURA DE DECISAO SE Vamos imaginar que um programa tera que con- trolar o estoque de determinando produto. Em certa parte do programa, teria a verificacao de quantidade do mesmo para alertar 0 usuario que o estoque esta baixo demais e é necessério comprar mais produtos. ‘Vejamos como seria esse comando em pseudocédigo: Se ESTOQUE < 10 entao Escreva("Estoque muito baixo! Compre mais!") Sendo Escreva("Estoque dentro dos liniites normais’ Fimse Mas antes de prosseguirmos com 0 cédigo, vamos nos atentar em todos os detalhes que esto presen- tes sobre esse programa, ou seja, 0 pseudocé que, assim, nao tenhamos dividas para elabora-lo no Small Basic. Ser | Wa inguagem de progamardorealé [WF Enc: [Na inguagem de progararso realé | THEN Sendor_| Na tnguager de progamectorealé [Ese Fine: _ | Natinguagem de programacio realé [ENDIF a) Em seu computador, abra o Small Basic através do menu Iniciar> Todos os Programas> Small Basic> Microsoft Small Basic. b) Primeiramente, precisamos que na janela de exe- cucdo TextWindow seja apresentado uma mensagem intuitiva sobre a descrigao de nosso programa, ou seja, um texto auxiliando-o nas etapas a partir do seu fun- cionamento. Portanto, na primeira linha do documen- to, pressione a tecla W e, com a ajuda da IntelliSense, insira o seguinte cédigo: TextWindow.WriteLine(“Entre com a quantidade do produto em estoque:”) €) Nosso préximo passo seré informar para 0 com- putador que ele deverd receber um valor lodo depois deste texto. Sendo assim, deveremos inserir 0 comando Read, que permite a insergao de caracteres. Sabendo que temos apenas uma variavel que, no caso, 6 Estoque, vamos inseri-la acompanhada de um comando que faga © computador entender que o valor digitado pelo usu- rio é a nossa varidvel. Sendo assim, apenas para uma melhor visualizagdo, pressione enter para mudarmos de linha e, entao, adicione o seguinte cédigo: Estoque=TextWindow.Read{) s 4d) Agora, faremos uma manipulagao de dados, ow seja, caso a resposta obtida pelo programa seja ver- dadeira, ele seguira um determinado caminho; se for falsa, seguir outro. Utilizaremos para tal faganha o If que, de acordo com o que ja falamos, é sempre se- guido da condigao que, por sua vez, serd seguida do comando Then para que possa ser executada, Portan- to, pressione novamente Enter e, em seguida, digite 0 seguinte cédigo: If Estoque < 10 Then €) Precisamos adicionar os comando que sero exe- cutados mediante a decisdo que serd tomada anterior- ‘mente, ou seja, 0 que serd feito apés a manipulagao de dados entre o If e o Then. Para entendermos melhor essa linha de cédigo acima, ela & narrada da seguinte forma em pseudocédigo: Se Estoque menor que dez.En- tao. Em nosso caso, precisamos exibir uma mensagem na tela, portanto, dé Enter e insira 0 seguinte cédig TextWindow.WriteLine(“Estoque muito baixo! Com- pre mais!”) f) Nessa situago, em que temos que executar uma entre duas opcdes, sempre utilizamos o Else (caso con- trario), Podemos entender o comando Else da seguinte forma: caso uma condicao seja verdadeira, seguira um determinado caminho. Do contririo, ira seguir outro, de acordo com a necessidade do usuario. Com seus co- nhecimentos, pressione Enter e insira o Else. Else 8) De acordo com o que j construimos, ser apre- sentada, na tela, a mensagem “Estoque muito baixo! Compre mais!” se o resultado obtido for menor que 10. Precisamos, entao, inserir os comandos para que a mensagem que diz que 0 estoque esta correto seja exibida na tela. Na linha 5 do documento, di 0 se- guinte texto: TextWindow.WriteLine(“Estoque dentro dos niveis normais.”) h) Por fim, precisamos finalizar 0 comando If, sa- bendo que jé temos todos os comandos estipulados no infcio de nossa aula em que se encontra o pseudocé- digo. Sendo assim, insira o comando EndIf na linha 6: Endif Dessa forma, finalizamos 0 nosso cédigo. Portanto, ‘vamos rever 0s passos que esse programa realizard: primeiramente, exibira a seguinte mensagem para 0 usudrio: “Entre com a quantidade de produtos em oer |: : i: LOGICA DE PROGRAMACAO 0 passo seguinte foi inserir a nossa varidvel Estoque, de modo que a mesma estava acompanhada pelo coman- do Read, que permite a insercao de caracteres. Lembre- -se que o valor a ser digitado ser’ efetuado pelo usuario de acordo com a verificacao do estoque. > Adicionamos uma condigao que ficou expressa da se- guinte forma: Se estoque for menor que 10 entdo. 7 TextWindow.WriteLine("Entre @ quan Caso essa afirmagao seja verdadeira, a mensagem di- 2 Estoque=TextWindow.Read() zendo que “Estoque muito baixo! Compre mais!” sera exibida, Do contrario, a mensagem dizendo: “Estoque dentro dos niveis normais” é que seré apresentada na tela, Finalizamos 0 programa com o EndIf. ¥ fi “i TextWindow.WriteLine("Entre com a quantidade do produto em estoque:") 2 Estoque=TextWindow.Read() 3 If Estoque < 10 Then 4 TextWindow.WriteLine("Estoque muito baixo! Compre mais — 5 Else 6 TextWindow.WriteLine("Estoque dentro dos niveis normais.") 7 EndIf §) Para executar o programa, dé um clique sobre o botdo Executar (F5), que se encontra na Barra de Ferra- ‘mentas do Small Basic e de acordo com a imagem a se- guir, Apés esse procedimento, vocé seré instrufdo pela seguinte mensagem que aparecerd na tela: “Entre com a quantidade do produto em estoque:”. Portanto, in- sira o valor 8 de acordo com as instrugdes e pressione Enter para poder obter o resultado: Repare que a mensagem dizendo “Estoque muito bai- xo! Compre mais!” apareceu na TextWindow de acordo com o programado.> j) 0 proximo passo sera salvar o programa para que ‘voce possa us4-lo quando quiser ou mesmo utiliz-lo em outros cédigo. Sendo assim, dé um clique sobre o botdo Salvar para que seja aberta a janela Salvar como, que indica um local para tal aco. Salvaremos esse nosso cédigo em Documentos, Sendo assim, clique sobre o botao » Bibliotecas. > LOGICA DE PROGRAMACAO x) Dé um duplo clique sobre a pasta Documentos. Em seguida, clique sobre o botdo Criar Nova Pasta. Como podemos notar, o texto jé esta selecionado, sen- do assim, digite Controle de Estoque e dé um duplo clique sobre ela. ¥ ‘Saiverom: [5g Bbiciecas J] «me SBD cccemaee nagene i miaae ee Wc ti mw osc. = = =] as Compa Sendo assim, podemos dizer que terminamos mais este cédigo! Esse programa que acabou de construir é ca- = paz de verificar 0 valor inserido pelo usuario e Ihe informar, através de uma manipulagdo de dados, se o estoque_ estd dentro dos padres de normalidade ou se é necessério comprar mais produtos. Logo abaixo podemos tirar_ algumas diividas a respeito da linguagem do pseudocédigo e da linguagem da programacao real. ‘TextWindowWriteline(“Entre com a quantidade do produto em estoque:") Estoque=TextWindow-Readi) Estoque < 10 Then “TextWindow\WriteLine(“Estoque muito balxo! Compre mats") Ese ‘TextWindow\WriteLine(“Estoque dentro dos niveis normais.") Endif Se ESTOQUE < 10 entao Escreva("Estoque muito basal Compre mais! Senso Escreva(“Estoque dentro dos limites normals”) FimSe m) Para darmos continuidade com a aula, precisamos de um novo documento. Portanto, clique sobre o botéo Fechar e, em seguida, clique sobre o menu Novo, que se encontra na Barra de Ferramentas. ¥ Se eee = ee | Suen 8 | LOGICA DE PROGRAMACAO COMANDO DE REPETICAO FOR Esta metodologia de desenvolver uma varidvel é muito comum na programacao, pois é um método mui- ‘to mais facil de fazer isso. 0 comando FOR permite que um certo trecho do programa seja executado um deter- minado niimero de vezes. Em termos de programacao, ‘esse momento & chamado também de Loop. 0 FOR per- ‘mite que vocé pegue uma variavel, dé um valor inicial e final e deixe que o computador desenvolva a variavel, para vocé, caso isso seja necessério. E ainda tem mais! Toda vez que o computador incrementar essa varidvel, ele roda todos os comandos que estiverem entre o FOR e ENDFOR. Sendo assim, vamos relembrar como é a Es- trutura de Repetigao FOR. Veja a seguir: For Contador = 1 To 10 Escreva("Esse 6 0 comando de repeti¢ao For”) FimFor Entenderemos, agora, como 0 computador proces- saria esse cédigo! Ao chegar & linha de inicio do For, ele colocaria a variavel Contador como valor 1. Depois disso, registraria um a um e, até que ela ndo obtivesse o valor 10, o comando iria se repetir: Portan- to, vamos seguir passo a passo como seria. Primeira vez: 0 Contador é igual a 1. Sendo assim, o computador escreverd na tela: “Esse 0 comando de repeti¢ao FOR”. Ao fazer isso e chegar ao FimFor, a variavel Contador tem seu valor acrescido de 1 e passa avaler 2. For Contador = 2 To 10 Escreva "Esse é 0 comando de repetigao For”) FimFor Segunda vez: o Contador é igual a 2. Por sua vez, o computador escreve na tela: “Esse é 0 comando de re- petigdo FOR’: Ao fazer isso e chegar ao FimFor, a varié- vel Contador ter4 novamente o seu valor acrescido de Le passaavaler 3. For Contador = 3 To 10 Escreva("Esse & 0 comando de repetigao For”) FimFor E 0 processo ira se repetir até que a variével Con- tador passe a ser 10. Ento, como 10 é o limite, 0 pro- grama saird do lago e poder percorrer outro caminho pré-determinado por nés, programadores, ou pela ne~ cessidade do programa. Sendo assim, vamos colocar todos esses nossos co- nhecimentos em pratica e digitar o cédigo de emissao de ingressos, visto em nossas aulas anteriores. a) Primeiramente, precisamos que seja apresenta- da uma mensagem na janela TextWindow para que, assim, possamos instruir o usudrio a inserir um certo valor e indicé-lo etapa por etapa. Portanto, na primei- ra linha do documento, digite o seguinte comando: ‘TextWindow.WriteLine(“Entrecom ondmerodeimpressosa emiti: b) A varidvel sera inserida a partir das instrugdes anteriores que indica que o valor a ser digitado nes- se ponto pelo usudrio ser 0 ntimero de ingressos a ser impresso. Para que esse comando seja posto em pratica, precisamos de uma peca fundamental para a insergao de valores, o comando Read. Sendo assim, pressione Enter e, na segunda linha, digite: Numerodeingressos = TextWindow.Read|) Lembre-se que 0 comando Read() ¢ um comando que simplesmente diz. ao computador para aguardar o usuario digitar um valor e pressionar ENTER. Uma vez que o usuario pressionar a tecla ENTER, 0 Read() pega o valor que o usuario digitou e retorna-o para 0 programa. O ponto mais interessante é que tudo que © usuario digitar, ficard armazenado em uma varidvel que, no nosso caso, é Numerodeingressos. ¢) De acordo com a necessidade de nosso progra- ma, teremos que especificar uma manipulagao de da- dos, E importante atentar-se ao detalhe desse ponto que é 0 fato de que inseriremos mais uma variével que, no caso, seré o Contador. Dessa forma, 0 progra- ma podera ser finalizado assim que o valor final, ou seja, o mimero de ingressos que o usuario ird definir para o programa for alcangado. Sendo assim, dé Enter € digite o seguinte comando: For Contador=1 To Numerodeingressos Vejamos, agora, como ficaria essa linha de comando em pseudocédigo: Para Contador igual a um até numerodeingressos. 4) 0 préximo comando serd digitar a mensagem que apareceré na janela TextWindow juntamente com © nimero de nossa varidvel Contador, ou seja, 0 pr meiro ingresso serd impresso com o nimero 1, 0 se- gundo com o niimero 2 assim sucessivamente. Para isso, pressione Enter novamente para mudarmos de linha e digite o cédigo a seguir: TextWindow.WriteLine(“Imprimiringresso de ntimero: "+ Contador) ) Por iltimo, finalizaremos 0 laco For utilizando 0 inico comando destinado pra tal facanha, o EndFor. De acordo com as nossas necessidades, pressione En- ter para que assim possamos inseri-Io EndFor Basicamente, o programa fara a seguinte leitura: que 0 cédigo for acionado, aparecera uma men- sagem na tela para instruir o usuario a entrar com 0 niimero de impressos a emitir. 33 Logo em seguida, ser4 disponibilizado ao usuério o local para que ele digite o valor desejado de ingressos. Lembre-se que esse comando nao fetornara até um valor ser inserido e pressionado Enter. ¥ Na sequéncia, inserimos uma manipulagao de dados utilizando um lago e, também, mais uma varidvel que, no nosso caso, fol a Contador. ¥ [ Textilindow.WriteLine("Entre como numero de impressos a emitir:") | Numerodeingressos = TextWindow.Read() Assim que o comando chegar a linha de baixo, seré apresentada uma mensagem ao usuario dizendo o seguinte: Imprimir ingresso de numero: + Contador. 0 computador entenderia esse cbdigo da seguinte forma: ao chegar a esse comando, 0 contador seria igual a 1, portanto, seria impresso o primeiro ingresso com o contador equivalente a 1. Em seguida, ao passar novamente por esse lago, tendo em vista que seria acrescentado mais 1 a variével Conta- dor, ela seria impressa com o valor 2, Isso ird se repetir até que seja atingido o ntimero final de ingressos. ¥ 7 TextWindow.WiriteLine("Entre com o nimero de impressos @ eniti Nunerodeingressos = TextWindow.Read() jor=1 To Numerodeingressos LOGICA DE PROGRAMACAO E 0 responsavel por finalizar todo nosso cédigo foi oEndFor. ¥ =f fextWindow.WriteLine("Entre com 0 ndeero de i Numerodeingressos = Textitindow.Read() For Contador=1 To Nunerodeingressos i MeiteLine("Imprimir ingresso de ) Precisamos testar 0 nosso cédigo apenas para ter a certeza de que ele esta devidamente correto. Sendo assim, dé um clique no botao Executar (FS) que se encontra na Barra de Ferramentas do Small Basic. ¥ g) Note que em nossa TextWindow foi apresentada a mensagem que programamos anteriormente: Entre com o mimero de impressos a emitir. Vamos ima- ginar que precis4ssemos imprimir 20 ingressos. Por- tanto, digite o valor 20 e pressione Enter para vermos oresultado obtido. A sua caixa texto deve estar pareci- da com a imagem a seguir, repare: V tater oman none arnt! h) Pressione Enter para que, assim, possamos vol- tar ao programa, pois iremos realizar mais um teste. Sendo assim, clique novamente sobre 0 botéo Exe- cutar (FS) e, em seguida, digite o valor equivalente a 150. Por fim, pressione Enter para podermos visuali- zar o resultado. ¥ BREST SSS S SETS TEESE {) Assim, podemos notar que esté tudo dentro do programado, nao é mesmo? Vamos salvé-lo para que, se eventualmente vocé quelra utilizé-lo novamente, ele estar disponivel para ser utilizado. Portanto, so- bre a Barra de Ferramentas, dé um clique no botao Salvar. Nas opgdes que estdo do lado esquerdo da ja- nela Salvar como, clique sobre o botao Bibliotecas. §) Dé um duplo clique sobre a pasta Documentos e, em seguida, crie uma nova pasta, clicando sobre o botdo Criar Nova Pasta. Como ela jé esta selecionada, apenas digite Imprimir ingressos e, em seguida, dé um duplo clique sobre ela. ¥ LOGICA DE PROGRAMACAO k) Na caixa de texto do campo Nome, digite Cédigo imprimir ingressos e, na sequéncia, clique sobre o botao Salvar. ¥ « fone: || [eterno [== Too! [Arquivos do Small Basic ( smalbasic) =] Cencslar_ |] Veja abaixo a diferenga entre 0 Cédigo real e o Pseudocédigo que acabamos de fazer: ¥ TextWindowWriteLine(“Entre como ndmero de impressos a emitir") Numerodeingressos = TextWindow.Read!) For Contador=1 To Numerodeingressos ‘TextWindow.WriteLine(“Imprimir ingresso de nimero: * + Contador) EndFor Esereva( "Entre com o nimero de impressos a emit") Receba o Numerodeingressos Para Contador igual a um até numerodeingressos Escreva(“Imprimiringresso de numero: “+ Contador) FimPara 1) Sendo assim, daremos continuidade e iremos nos aprofundar mais a respeito do Comando de Repeti¢ao While. Portanto, clique sobre o botao Fechar e, em seguida, clique sobre o menu Novo, que se encontra na Barra de Ferramentas. ¥ kl > Ss COMANDO DE REPETICAO WHILE Diferentemente do For, o While, que em pseudocé- digo quer dizer Enquanto, pode ser usado quando nao sabemos quantas vezes 0 processo ira se repetir. Sen- do assim, vamos imaginar que, para executar deter- minada tarefa, 0 usudrio precisa digitar uma senha e, enquanto ele nao a acerta, o sistema fica pedindo para que ele a digite. Veja o pseudocédigo jé estruturado: + VARIAVEIS SENHA do tipo STRING: DIGITADO do tipo STRING; + INICIO; + SENHA ="ABCD" + While DIGITADO<>SENHA do ‘+ Pedir para digitar a senha e armaze- nar na variavel: DIGITADO + EndWhile + FIM; a) Vamos elaborar essa estrutura no Small Basic para que, assim, possamos entender todo esse cédigo melhor. Pensando assim, primeiramente, precisamos definir qual sera a nossa primeira varidvel. No nosso caso sera Senha. Portanto, com o cursor jé posiciona- inha, digite: b) Pressione duas vezes a tecla Enter apenas para uma melhor visualizacdo do cédigo. Nosso préximo pas- so serd adicionar um lago While, ou seja, a partir daf, 0 usuario terd que digitar a senha, até aj tudo bem mas, enquanto essa senha for Falsa 0 cbdigo pediré a senha a ele infinitas vezes, e s6 saird do lago mediante a senha correta, Sendo assim, digite o seguinte cédigo abaixo: While jo <> Senha ¢) Precisamos instruir o usuario com uma mensa- gem intuitiva na TextWindow, para ele nao se perder quando 0 cédigo for muito extenso, afinal, esse seré apenas a etapa da senha. Sendo assim, pressione En- ter e digite o seguinte texto: ‘TextWindow.WriteLine("Digite a senha:”) d) Mais uma varidvel tera de ser adicionada me- diante 0 cédigo, pois, se analisarmos com cuidado, inserimos o Digitado e nao especificamos qual sera a 56 ree iy Soa = eee oer = ah LOGICA DE PROGRAMACAO sua fungdo, néo é mesmo? Como o proprio nome jé diz, ela ser o valor que o usuério ira digitar: Para isso, preci- samos inserir um comando de insergao de texto, Dé Enter e insira 0 cédigo abaixo: rj Digitado = TextWindow.Read{) ) 0 cédigo ja esta pronto. £ preciso, apenas, finalizd-lo, nao é mesmo? Esse é um comando facil, basta apenas adicionarmos o End a frente do While. Faremos isso na linha abaixo. Lembre-se que 6 apenas para uma melhor visualizagao. Sendo assim, digite o seguinte texto: EndWhile Com isso, nosso programa de senhas esta concluido. Portanto, ele jé poderd ser executado para sabermos se tudo esté funcionando corretamente. Mas, antes disso, vamos salvé-lo, afinal, vocé ndo quer perder seu trabalho caso haja algum erro inesperado durante a execucdo, nao é mesmo? f) Portanto, clique sobre o botdo Salvar que se encontra sobre a Barra de Ferramentas. Em seguida, do lado esquerdo da caixa Salvar como, dé um clique sobre o botao Bibliotecas. V = oa gu 4) Como de costume, salvaremos esse trabalho dentro de Documentos. Sendo assim, abra essa pasta através de um duplo clique. Em seguida, clique sobre o botao Criar Nova Pasta e nomeie-a para Cédigo Senha. ¥ s _ h) Dé um duplo clique sobre a pasta Cédigo Senha e, em seguida, na caixa de texto do campo Nome, digite LI novamente Cédigo Senha e clique sobre Salvar para concluir. ¥ i r i es | i] rt Apenas para relembrar, veremos a seguir a diferenca entre a Linguagem de Programagao e 0 Pseudocédigo utilizados para a elaboragao desse codigo: ¥ bell) (sene-aar + VARIAVE;S ‘SENHA do tipo STRING: While Digtado > Senha DIGITADO do tipo STRING; “ertWindowiWriteLine(“Digte a senha:") Digitado = TextWindow. Read) + Inco; Endwrile + SENHA ="ABCO" While DIGITADO<>SENHA do ‘+ Pedir para digtara senha e armazenar na va- riével: DIGTADO + EndWhile i) Faremos, agora, alguns teste para comprovar se este programa esta definitivamente correto ou nao, alias, em programacao, os detalhes fazem toda a diferenca. Sendo assim, clique sobre o botdo Executar (F5), na Barra de Ferramentas. P J) Podemos notar que a primeira coisa que o progra- ‘ma nos instrui é para digitar-mos a senha, nao é mesmo? Primeiramente, vamos digitar a senha incorreta para ter a certeza de que o programa responder de acordo com © programado, Sendo assim, digite 1112 e pressione Enter. > k) A mensagem “Digite a senha:” aparece novamen- te e isso é bom, pois sabemos que o programa pedir a senha infinitamente para o usudrio até ele acerté-la e, assim, saira do lago podendo percorrer um outro cami- nho de acordo com a necessidade. Precisamos observar a rea¢ado do programa agora, quando a senha correta é digitada, Portanto digite 1122 e pressione Enter. P 1) Para voltarmos ao programa, pressione Enter. Como sabemos que o nosso cédigo jé esta salvo, clique sobre © botao Fechar e, em seguida, sobre o menu Novo. V LOGICA DE PROGRAMACAO t i ‘como 1122. Em seguida, elaboramos um lago Wh 0 digitado for diferente da senha, o programa retornaré novamente ao ird se repetir toda vez que a senha estiver incorreta, pois esse lago sé seguir um outro caminho caso os valores digitados correspondam com a variével Senha, ou seja, se o digitado for verdadeiro. FACA VOCE MESMO a Pensando em vocé, segue um pseudocédigo para que possa praticar ainda mais e desenvolver projetos ‘no Small Basic. Mas no fique preocupado, pols, se em algum momento surgir alguma divida, basta rever os conceitos vistos durante a aula, pois ela foi desenvolvi- da exatamente com os mesmos comandos que verd a seguir! Também ha um gabarito no final da apostila, no qual poderé encontrar todos os cédigos dos exercicios. 1. Que tal construir um programa com apenas duas varidveis, mas que Ihe mostre duas mensagens: uma a cada tentativa errada e uma quando correta? Para isso, tenha como base o pseudocédigo mostrado a seguir + Varidveis Senha do tipo Inteiro; Numero inteiro; + Escreva("Digite a senha”) + Senha =10 ‘+ Numero = Pedir para Digitar + Enquanto Numero diferente da Senha * Escreva(“Senha errada:”) + Escreva(*Digite a Senha:”) ‘+ Numero = Pedir para digitar + FimEnquanto ‘+ Se Numero = Senha Ento * Escreva(“Correto”) + Fimse 58 _ : ST LOGICA DE PROGRAMACAO . 2. Caleulo de senha finita. Sabe-se que nos bancos, no e-mail e em todo lugar que utilizamos senha, depois de algumas tentativas, 0 sistema no permite mais colocar a senha, de modo que Pode até mesmo travar programa para que o usui no tenha a oportunidade de tentar mais uma vez. Isso & assim para evitar que o mesmo fique tentando até acer- tar a senha e chegue a causar um enorme transtorno ao verdadeiro dono. Veja, agora, o que é preciso para que isso possa ser colocado em pratica: * Precisamos, inicialmente, definir as variveis SE- NHA, que serd do tipo String, DIGITADO, também do tipo String, e TENTATIVAS, do tipo Inteiro, para que, assim, possamos dizer a0 computador qual seré a senha que 0 usudrio iré digitar e qual a quantidade de tentativas que ele terd. * Em seguida, é necessério entrar em um lago Whi le e especificar que: ENQUANTO DIGITADO DIFE- RENTE DA SENHA E TENTATIVAS MENOR QUE 3. Acompanhado com mais alguns comandos an- tes de finalizé-lo, ou seja, pedir para o programa mostrar uma mensagem instruindo o usuario na TextWindow, fazer um processamento de dados e também um local para a insere3o de caracteres. Finalizando assim o laco While. + 0 préximo passo sera inserir um espaco para a manipulag3o de dados que, no caso, seré feito da seguinte forma: SE DIGITADO IGUAL A SENHA ENTAO, apareceré na janela texto uma mensagem SENAO, aparecer na janela texto outra mensagem finalizando o programa. ‘+ Finalizando 0 cédigo. \Veja toda essa estrutura em pseudocédigo para fai tar um pouco mais: = VARIAVEIS ‘SENHA do tipo STRING; DIGITADO do tipo STRING; TENTATIVAS do tipo INTEIRO; + INICIO; SENHA = “ABCD” TENTATIVAS = 0 ‘+ While DIGITADO@SENHA AND TENTATI- VAS <3 + Escreva(“Digite a senha:”) * Acrescentar 1 no valor da varidvel TENTATIVAS + Pedir para zenar na varidvel: DIGITADO + Fimwhile ‘+ Se DIGITADO = SENHA entéo ‘+ Escrever("Vocé acertou a senhal”) ‘+ Terminar o programa SeN3o + Escrever na tela ("Excesso de tentativas!”) + Terminar o programa + Fimse Muito bem, com isso, finalizamos a nossa aula aposti- lada de hoje! Nela, construimos o programa de Controle de Estoque no Small Basic para que, assim, pudéssemos diferenciar a linguagen real de programacdo e o pseudo- cédigo. 0 Comando de Repeticao For foi utilizado para estruturar 0 programa de emissio de ingresso, em que um aco ficou responsavel por imprimir a quantidade exata de ingressos. Elaboramos, também, um programa de senha, em que o usuario digitaria o tanto de vezes suficientes para tal ago, lembrando que ele teria um nuimero infinito de tentaritvas. Para isso, esse cédigo construido em um lago While. Esperamos revé-lo mi entusiasmado para nosso novo encontro. Até a préximal OBJETIVOS DA AULA + Conhecer a biblioteca gréfica do Small Basic; + Desenhar formas circulares e retangulares; + Criar formas sem preenchimento; + Trabalhar com cores; + Aprender sobre a Tartaruga (Turtle). © QUE VAMOS FAZER Na atividade de hoje, revisaremos os principais con- ceitos vistos durante a aula interativa e, por isso, refor- garemos nosso aprendizado sobre os operadores, seus tipos e, também, suas fungdes. Deixando a conversa de Jado, esperamos que vocé fique atento a todos o deta~ Ihes contidos em seu material didatico. Vamos la! CONHECENDO A BIBLIOTECA GRAFICA DO SMALL BASIC Até ento, em nosso aprendizado, vimos como construir varios tipos de programas em que trabalhamos ape- nas com textos, mas, nesta aula, conhecemos uma nova maneira de utilizar a programacao dentro do aplicativo, voltada para os desenhos, Antes de iniciarmos esse tipo de atividade, é muito importante sabermos 0 que é a GraphicsWindow. Pois bem, esta é uma biblioteca do Small Basic que possui todos os comandos necessarios ere con o ninero de inpressos a enitir: ingresso de ninero: Ingresse de nunere: resse de ninero: Ingresso de nunere: ingresse de nunere: ingresso de numero: Ingresse de numero: ingresse de nanere: ingresso para se criar desenhos na tela do computador. Ao serem construidos, esses desenhos sao exibidos na janela Gré. ficos,a qual possui um visual bem diferente da janela de execugao do aplicativo. Para comprovarmos isso, obser- ve a seguir a imagem das duas telas: ¥ Janela de execucdo do aplicativo 60 Janela Graficos DESENHANDO FORMAS CIRCULARES E RETANGULARES Durante a interagao, descobrimos que o Small Basic hos permite criar algumas formas geométricas, po- rrém, vimos varias maneiras diferentes de desenhé-las, como, por exemplo, uma elipse com preenchimento € um reténgulo sem. Contudo, também aprendemos algo muito interessante em relacdo ao cédigos usados para a construgdo das formas, que é a utilizago dos par€nteses para definirmos a posi¢ao e o tamanho do desenho, Para que possamos.entender melhor, obser- ve 0 exemplo mostrado abaixo: ¥ Como vocé deve se lembrar, estes so os comandos responsaveis por criar uma elipse com preenchimen- to, ndo é verdade? Pois bem, analisaremos os nimeros inseridos entre parénteses de acordo com as anota- ri Ges feitas na imagei A. Como este é 0 primeiro valor inserido, correspon- de a coordenada X. Através dela, indicamos a distdncia do objeto em relacdo a margem esquerda da janela. Com isso, quanto maior for o valor definido, mais para a direita ficard o desenho. B, Este & 0 segundo valor adicionado, portanto, re- fere-se & coordenada Y. Com ela, informamos a distén- cia entre o objeto e a margem superior da janela, en- to, quanto maior for o valor definido, mais para baixo ficard o desenho. €.Oterceiro ntimero representa a largura do objeto. D. 0 quarto e tiltimo niimero adicionado ao parén- | teses refere-se a altura do objeto. Como vocé pode ver, podemos definir facilmente 0 posicionamento e 0 tamanho que o nosso desenho de- verd ser exibido na tela. Mas é importante sabermos que este conceito também se aplica quando deseja- LOGICA DE PROGRAMACAO a mos criar uma forma retangular, como vocé pode vi- sualizar no exemplo a seguir: ¥ x Y argura Altura CRIANDO FORMAS SEM PREENCHIMENTO. Ao desenvolvermos trabalhos com desenho no Small Basic, temos uma certa variedade de opcdes para fazé-lo. Além de criarmos formas com preen- chimento, o programa nos permite desenhar essas mesmas formas apenas com seu contorno, o que, em alguns casos, torna-se um trabalho mais bonito e atra- ente. Para desenvolvermos esse tipo de atividade, uti- lizamos o comando DrawEllipse ou DrawRectangle. 0 primeiro deles, como vocé jé deve imaginar, 6 0 responsavel por desenhar as formas circulares, j segundo, as formas retangulares. Neles, também utili- zamos os parénteses para definir o posicionamento e © tamanho do objeto, como mostrado na imagem: V Mas saiba que nao € sé isso! Através do comando PenWindth, podemos definir a espessura do contorno utilizada nos desenhos, conforme a ilustracao a seguir: ¥ i 5 LOGICA DE PROGRAMACAO TRABALHANDO COM AS CORES DA BIBLIOTECA GRAFICA Como vimos durante a aula interativa, podemos al- terar a cor de preenchimento das formas, mas saiba que no é sé isso! Também podemos mudar a cor apli- cada ao plano de fundo da janela Graficos. Vocé ha de concordar que estes sao conceitos bem interessantes, nao é mesmo? Mas antes de mais nada, precisamos co- nhecer bem 0 nome das cores, afinal, na linguagem de programacao, trabalhamos diretamente com 0 idioma Inglés. E sera exatamente isso que faremos agora! Sen- do assim, acompanke a lista mostrada a seguir, que contém todas as cores que encontramos na biblioteca grafica do Small Basic: ¥ i Vermetho cure Amaro sero Para que vocé possa entender melhor como trabalhar ‘com cores no Small Basic, aprenderemos a aplicd-las em uma foma com preenchimento e em uma outra sem pre- enchimento, Além disso, aproveitaremos para alterar a cor de fundo da janela Graficos, Portanto, em seu compu- tador, realize os exercfcios mostrados a segul a) Primeiramente, abriremos o aplicativo. Entao, clique no menu Iniciar e, em seguida, va em Todos os Programas, Através da Barra de rolagem, acesse a pasta Small Basic com um clique e, dentre as opgdes, escola Microsoft Small Basic. b) Para comesar, alteraremos a cor de fundo da ja- nela Graficos. Sendo assim, insira a seguinte linha de comando: GraphicsWindow.BackgroundColor = “Blue” 0 comando BackgroundColor é o responsdvel por al- terar a cor de fundo da janela Graficos. Em nosso caso, especificamos que a mesma deverd ser Azul (Blue). ©) Feito isso, clique no botdo Executar (F5), que se encontra na Barra de ferramentas do programa, para comprovarmos se a cor foi alterada. 4) Como vocé pode ver, a cor Azul foi corretamente aplicada, Para darmos continuidade ao trabalho, cli- que no botdo Fechar da janela Graficos. €) Neste projeto, desenharemos uma elipse com preenchimento e um reténgulo apenas com sua linha de contorno. Pois bem, comegaremos pela forma cir- cular. Para isso, pressione a tecla Enter duas vezes digite os cédigos a seguir: GraphicsWindow.BrushColor = “Red” GraphicsWindow.FillEllipse(100, 80, 100, 100) Na primeira linha de c6digos, utilizamos o comando BrushColor para definir uma cor de preenchimento para a forma, Em nosso caso, escolhemos o Vermelho (Red). J4 na segunda linha, criamos uma elipse posi- cionando a mesma em 100px na coordenada X e 80px na coordenada Y, e com o tamanho de 100px tanto para Largura quanto para Altura, ) Clique no botdo Executar (F5) e confira se ela estd semelhante ao que esta sendo mostrado: 2) Muito bom, ndo acha? Feche a janela Graficos e, depois, pressione Enter duas vezes para darmos espa- ¢0 entre os comandos. hh) Agora, desenharemos o retangulo e, nele, aplicare- mosa cor Amarela, Portanto, digite a seguinte sequéncia de cédigos: GraphicsWindow.PenColor = “Yellow” GraphicsWindow.PenWidth = 10 GraphicsWindow.DrawRectangle(350, 250, 170, 100) Através do comando PenColor digitado na primei- | ra linha, acompanhado do cédigo Yellow, aplicamos ff 62 a cor Amarela ao contorno do retangulo. Na segunda linha, informamos que a espessura do mesmo deveria ser de 100 px e, para finalizar, digitamos os comandos responsaveis por criar a forma retangular, em que es- pecificamos que sua posigo e o seu tamanho serio, respectivamente, de 350px na coordenada X, 250px na coordenada Y, 170px de Largura e 100pxde Altura. 4) Com isso, jé inseriremos todos os cédigos. Entao, clique no boto Executar(F5) para verificarmos se 0 resultado final de nosso trabalho est4 semelhante ao indicado a seguir: ¥ i) Parabéns, este foi um belo trabalho! Para ndo perdermos o mesmo, iremos salva-lo. Sendo assim, na Barra de Ferramentas, clique no botao Salvar. LOGICA DE PROGRAMACGAO k) Como a janela desta opgdo jé se abre na pasta Documentos, guardaremos nosso arquivo aqui. Com ‘© campo Nome ja selecionado, digite Trabalho com cores e pressione Enter. 1) Antes de prosseguirmos, criaremos um novo do- cumento, portanto, feche o Editor e, em seguida, acio- ne o oto Novo, que se encontra na Barra de ferra- mentas do programa. APRENDENDO SOBRE A TARTARUGA (TURTLE) Como jé sabemos, 0 Microsoft Small Basic é um sof- tware para iniciantes em programagao. Seguindo essa linha de raciocinio, temos a Tartaruga ou, em Inglés, Turtle. Este é um recurso do programa que nos per- mite entender com mais facilidade a criago dos dese- hos via cédigos. Através dela, desenhamos linhas retas que, confor- me 0 seu posicionamento, acabam se transformando ‘em belas imagens. ‘A seguir, conheceremos as fungées de alguns cédi- 405 utilizados nos trabalhos com a Tartaruga: V Turtle. Show() = Mostra e habilita a Tartaruga. TurtleX = Define a posigao da Tartaruga na coordenada X. TurtleY = Define a posigao da Tartaruga na coordenada ¥. Turtle.TurnRightQ) - Gira a Tartaruga 90° para a direita, Turtle.TurnLeft() = Gira a Tartaruga 90° para a esquerda. ~ Move a tartaruga conforme a distancia especificada entre parénteses. Turtle.Move(distancia) Se a caneta estiver abaixada, uma linha seré desenhada enquanto a Tartaruga se movimenta. Turtle PenUpQ) = Levanta a caneta, fazendo com que a Tartaruga nao desenhe ao se mover. Turtle.PenDown() ~ Abaixa a caneta, fazendo com que a Tartaruga desenhe ao se mover. Turtle. show0 ~ Habilite a Tartaruga. Turtle.X = 60 -Posicione a Tartaruga em 60px na coordenada X. Turtle.Y = 150 Posicione a Tartaruga em 150px na coordenada ¥. Turtle.TurnRight) -Gire a Tartaruga 90° para a direita, Turtle. Move(100) -Mova a Tartaruga a uma distancia de 100px. Turtle.TurnLeftQ) -Gire a Tartaruga 90° para a esquerda. Turtle. Move(100) -Mova a Tartaruga a uma distancia de 100px.. Turtle.PenUpO -Levanta a caneta da Tartaruga. Turtle.Move(30) -Mova a tartaruga a uma distancia de 30px. 63. LOGICA DE PROGRAMACAO Para nos auxiliar em nosso aprendizado, aliaremos este conceito ao que sabemos sobre a estrutura de re- petigao FOR. Vamos la! Este serd um exercicio pratico, em que faremos com que a Tartaruga desenhe uma espiral. Com isso, vocé ird aprimorar seus conhecimentos sobre este interes- sante assunto. a) Para comegar, temos que habilitar a Tartaruga e exibir a mesma na tela. Sendo assim, na primeira linha do Editor do Small Basic, insira o seguinte cédigo: Turtle.show() 1b) Nosso préximo passo seré criar a estrutura de repeticao For e informar a quantidade de repetigdes que a mesma executard. No nosso caso, seré de 50 ve- zes, Portanto, pressione Enter e, em seguida, continue inserindo os comandos indicad« For Contador = 1 to 50 ©) Continuando, agora temos que especificar o que a Tartaruga faré a cada repeticao. Como estamos de- senvolvendo uma espiral, precisamos de varias linhas retas que, por sua vez, deverao ter tamanhos diferen- tes. Para isso, pressione Enter e adicione as duas li- nhas de c6digos a seguir: Turtle. Move(Contador*3) Turtle-TurnRight Na primeira linha de cédigos, informamos que, a cada repeticao, a Tartaruga deverd se mover e dese- nhar uma linha reta. Esta, tera o tamanho baseado no niimero da repeti¢ao multiplicado por trés. Ou sej caso esteja na segunda repeti¢ao, o tamanho da linha serd de 6px, afinal, este ¢ 0 resultado da multiplicagao por 2 vezes. Jé na segunda linha de cédigos, especificamos que, assim que cada linha for criada, a Tartaruga deverd gi- rar 90° para a direita, d) Feito isso, sé nos resta finalizar a estrutura FOR. Entdo, pressione Enter novamente e, em seguida, insi rao seguinte comando: EndFor Com isso, nosso programa est terminado. Sendo assim, sua sequéncia de cédigos deve estar bem seme- Ihante a que mostramos na imagem a seguir: Turtle. Move(Contador*3) Turtle. TurnRight() EndFor €) Agora, clique no botao Executar (F5) para visua- lizarmos o resultado obtido nesta atividade, ¥ f) Ficou étimo, parabéns! E para ndo perdermos este belo trabalho, iremos salvé-lo. Portanto, clique no, botio Fechar da janela Graficos e, depois, clique em. Salvar. ) Com a janela Salvar aberta na pasta Documen- tos, clique no botdo Criar Nova Pasta e, em seguida, renomeie-a para Trabalhos com a Tartaruga. h) Agora, alteraremos o nome do arquivo, portanto, clique no campo Nome, digite Espiral e, por fim, pres- sione Enter. {) Feito isso, feche o Microsoft Small Basic. Se i Cen i LOGICA DE PROGRAMACAO. FACA VOCE MESMO- Como vocé péde ver, desenhar utilizando a linguagem de programacao dentro do Small Basic é bem simples e fi- cil, Entdo, para que vocé possa praticar e, assim, aprimorar-se neste assunto, Temos alguns exercicios a seguir. Voce deverd criar os desenhos baseados nas informagées dadas. Caso vocé tenha alguma diivida, ¢ muito importante esclarecé-ta antes de dar continuidade ao curso, pois isso poderd prejudicé-lo futuramente. No final desta apostila, vvocé encontraré um gabarito com todos os cédigos utilizados nestes exercicios. 01- Para comecar, desenhe um reténgulo com preen- _‘O2 - Utilizando seus conheciemtnos, altere a cor de jimento, conforme as indicagSes a seguir: fundo da janela Gréficos para Cinza e, em seguida, dese- ihe contorno de uma elipse, baseando-se nas seguit Cor: Verde tes especificagées: x: 100 ¥:70 Cor: Magenta Largura: 50 Espessura: 10 ‘Altura: 200 X: 200 ¥: 150 Largura: 120 Altura: 120 CONCLUSAO Nesta atividade, vocé conheceu uma nova maneira de trabalhar com 0 Microsoft Small Basic e, também, com a linguagem de programacéo. Para isso, aprendemos um pouco sobre a biblioteca gréfica do programa, vimos como desenhar formas circulares e retangulares, trabalhamos com cores e, por fim, conhecemos a Tartaruga, um recurso Eréfico do aplicativo muito interessante. Esperamos que vocé tenha gosta desta aula, pois ainda aprenderemos muita coisa. Lembre-se que é com bastante empenho e dedicaco que conseguimos conquistar nossos objetivos. Nao se es- queca que, antes de passar para a préxima atividade, vocé teré que responder a avaliacSo. Boa sorte e até a préxima! 65 OBJETIVOS DA AULA + Utilizar sub-rotinas; ‘+ Capturar eventos do mouse e teclado; + Criar um programa para desenhar. © QUE VAMOS FAZER No nosso encontro de hoje, vamos trabalhar com sub-rotinas, entender como e quando utilizé-las, além, de comprovar sua funcionalidade e alterar um progra- ma que haviamos construido anteriormente. Iremos, também, desenvolver programas que, ao capturar aces do mouse e do teclado, exibiréo uma mensa- gem para indicar o que foi feito. Por fim, reuniremos todos esses conceitos em um tinico programa que nos, permitira desenhar 0 que quisermos e, se 0 resultado no for o desejado, poderemos apagé-lo. Preste muita atengao em todas as informagées da apostila, pois os assuntos abordados serio de grande importdncial Te- nha uma boa aula! UTILIZANDO SUB-ROTINAS ‘Sub-rotinas so pequenos trechos de comandos que executam agdes especificas ¢ facilitam o entendimen- to e a manutengao do cédigo. Podemos utilizé-las di- vversas vezes na mesma estrutura, através de um cha- mado, que é feito apenas citando o nome das mesmas. Além disso, existe a possibilidade de reaproveits-las em outros programas, o que permite economizarmos tempo e trabalho. 66 a) Para comegarmos a construir um programa que utilizaré uma sub-rotina, abra 0 Small Basic em seu computador através do menu Iniciar \ Todos os Pro- gramas \ Small Basic \ Microsoft Small Basic. 1b) Assim, acrescentaremos a primeira linha de cédigo que, além de indicar a abertura de uma sub-rotina, con- tém como a chamaremos no decorrer do projeto ou, em outras palavras, seu nome. Sendo assim, digite: ‘Sub MostrarHora ) Agora, determinaremos qual ago sera desenvol- vida e exibida a partir do que foi programado. Nesse caso, escolhemos mostrar a hora exata do momento de execugao do programa. Entéo, pressione Enter digite: ‘TextWindow.WriteLine(Clock.Time) d) Tendo feito, podemos fechar a sub-rotina, ja que apenas essa ago seré executada por ela, Mas esse “fe- chamento” néo é definitivo, pois sempre que quiser- ‘mos acrescentar ou remover uma tarefa ser possivel. Continuando, passe para a préxima linha usando a te- cla Enter e, depois, digit EndSub €) Muito bem, com isso, a parte inicial do programa ja est pronta, Ento, para testé-la, clique em Executar Pe LOGICA DE PROGRAMACAO ‘Sub Nostrartiora ‘Textilindow.Writel ine (Clock. Time! EndSub ) Note que nada além de uma répida piscada de tela ocorre. Isso se deve pelo fato de que a sub-rotina precisa ser chamada em um programa para que fun- cione. Vamos dar um jeito nisso! Comece pressionan- do Enter duas vezes e digite a estrutura abaixo: ‘TextWindow.MriteLine(“Bem vindo ao program ‘MostrarHoral) ) Neste primeiro trecho, temos a frase inicial do programa e ja aparece o primeiro chamado para a sub-rotina. Para vermos como anda nosso programa, clique em Executar. Dessa vez, ele é executado e, em sua tela, esta presente a saudacao. Logo abaixo, é mos- trada a hora, da mesma forma que escolhemos inicial- mente. ¥ h) Com isso, fica facil entender a praticidade que nos é oferecida quando trabalhamos com sub-rotinas, ja que, apenas citando o nome da mesma, poupamos a digitacdo de todo um trecho de acdo. Agora, volte ao, ‘Small Basic pressionando a Barra de Espaco. 1) Nosso projeto esté funcionando, mais ndo se re- sumiré a apenas isso. Vamos continuar a construé-lo, acrescentando uma senha e limitando o nimero de tentativas que o usudiio ter para acerté-la através de um lago While que, como vocé deve se lembrar, jé uti- lizamos anteriormente. Entdo, novamente pressione Enter duas vezes e digite: Senha = “1415” Tentativas = 0 ‘While Digitado <> Senha And Tentativas <3 TextWindow.WriteLine("Digite a senha: ‘Tentativas = Tentativas + 1 Digitado = TextWindowRead() EndWhile Lago While: essa ferramenta determina que, en- quanto a acao correta ndo for executada, ocorrerao repeticdes, de modo que a quantidade de vezes pode ser um nimero limitado ou nao. j) Essa estrutura pode ser comparada ao sistema de caixas automaticos presentes nos bancos. Se o cliente errar a senha trés vezes, ele fica impedido de realizar qualquer procedimento, mas se ele acerté-la, pode realizar o que deseja. Agora, acrescentaremos ao pro- grama mensagens que indicarao se acertamos ou nao a senha. Para isso, pressione Enter duas vezes e pros- siga digitando: If Tentativas >= 3 Then TextWindow.WriteLine("Excesso de tentativas!”) MostrarHora() Else ‘TextWindow.WriteLine(“Vocé acertou asenha!”) MostrarHora() EndIf If essa condigao permite a tomada de diferentes de- cisdes de acordo com a situagao apresentada. = je ; LOGICA DE PROGRAMACAO 1k) Pode parecer que a sub-rotina nao fez diferenga, devido ao tamanho da estrutura, mas veja que, por trés vezes, aconteceu um chamado, o que jé nos ajudou a economizar algum tempo. Com o programa pronto, vamos testa-lo. Entao, clique em Executar. ¥ jostrarHora Senha = "1415" TextWindow.Writeline(Clock.Time, Tentativas = 0 While Digitado <> Senha Digitado = Textwir Endwhile SURES eevau, Seu aa 1) Muito bem, na janela que surge temos a mensa- mos 0 que aparece quando acertamos a senha? Para gem inicial, a hora e o pedido de senha, tudo como _ isso, clique novamente em Executar, digite 1415 e determinamos. Ento, digite 1212 e pressione Enter. _pressione Enter. Como desta vez ela esté correta, outra Como essa senha € incorreta, um novo pedido & apre-_ mensagem surge. ¥ sentado. Repita novamente esse processo para, assim, ver a mensagem de tentativas excedidas. ¥ en vindo ao programa’ 11:04:34 [14:13:13 Press any key to continue... n) Agora, vamos acrescentar um detalhe dentro da sub-rotina para mostrar que basta alterd-la uma vez para que todas as outras partes onde ela for utiliza- da, também se modifiquem. Entdo, clique no final da linha dois e pressione Enter para criar, assim, um es- paco em branco. A partir disso, digite: m) Tendo feito, pressione qualquer tecla para fe- x char 0 programa e voltar ao Small Basic. Que tal ver- ‘TextWindow.WriteLine(“Hordrio de Brasilia. cy a © a J a 7 aa efi LOGICA DE PROGRAMACAO x) “Textiindou, Nei tL ine(Clock. Thee “3 [Fextrindow.uritetine(Horario de Srasiliz') 0) Com isso, clique em Executar e veja que 0 novo trecho esta presente. Continue avangando pelo pro- ‘grama e confira que, sempre que a sub-rotina foi cha- mada, a novidade também estaré ld. ¥ P) Chegando ao fim do programa, encerre-o e, en- tao, clique em Salvar. Nomeie-o como senha e confir- me clicando em OK. Na sequéncia, feche apenas o do- cumento, CAPTURANDO EVENTOS DO MOUSE ETECLADO Para a realizacao de determinadas tarefas, existe a _ necessidade que ages do mouse e do teclado sejam detectadas. Para que isso seja possivel, na estrutura deve estar determinado 0 que sera entendido como ago, como, por exemplo, pressionar ou soltar uma te- clae cliques com 0 mouse. No nosso caso, passaremos por todas essas opgGes. a) Vamos criar um novo programa que iré detectar cliques do mouse. Para isso, precisamos de um docu- mento em branco, Entio, clique em Novo. b) Nossa primeira estrutura detectaré cliques do mouse utilizando 0 método MouseDown da Classe GraphicsWindows. Isso nos leva ao conceito de orien- taco a objetos, no qual os mesmos so separados pe- Jas caracteristicas, ou métodos, que possuem. Entdo, digite: GraphicsWindow.MouseDown = QuandoClicarOMouse ©) Também utilizaremos uma sub-rotina que deter- minaré qual agao deverd ser detectada e, assim que a mesma for realizada, uma mensagem sera exibida. Sa- bendo disso, digite: Sub QuandoClicarOMouse GraphicsWindow.ShowMessage(“Vocé clicou com o mouse’, “Teste”) Endsub 4) Muito bem, com apenas poucas linhas de cédigos ja temos um programa capaz de detectar clique em Executar. Perceba que, desta vez, uma janela em bran- co surge. Dé um clique dentro dela e, assim, um a 6 apresentado. Ele indica que vocé realizou uma ago detectavel. ¥ €) Entéo, clique no botdo OK e, em seguida, no boto Fechar do programa, Jé no Small Basic, clique na drea de edi¢do dos eédigos, pressione Ctrl + A e, tendo sele- cionado todo 0 contetido, apague usando o Delete. £) Agora, vamos criar algo um pouco diferente. Des- sa vez, quando uma tecla for pressionada, a mensa- gem de aviso surgira, Essa estrutura é muito parecida com a anterior, 0 que muda séo apenas alguns deta hes, Sendo assim, digite: GraphicsWindow.KeyDown = QuandoPressionarTecla Sub QuandoPressionarTecla GraphicsWindow.ShowMessage(“Vocé pressionou uma tecla’, “Teste”) EndSub g) Com ela pronta, clique em Executar e pressione a Barra de Espaco. Veja que surge o aviso: "Vocé pres- sionou uma tecla.” Entdo, clique em OK e, em seguida, feche o programa. Obs.: qualquer tecla pressionada faz. com que a ja nela com 0 aviso seja exibida. > hh) Agora, iremos fazer algumas alteragdes e mudar © método, a agao detectivel, a sub-rotina e a mensa- gem que sera exibida. Primeiramente, mude o método do programa, Ento, no lugar de "KeyDown’, digite: “KeyUp”. {) Em seguida, substitua o trecho “QuandoPressio- narTecla’, Para isso, digite: “QuandoSoltarATecla’. ¥ QuandoPressionarTecla 5 EndSub GraphicsWindow.KeyDown =[QuandoPressionartecla 4 — GraphicsWindow.ShowMessage("Vocé pressionou uma tecla. QuandoSoltarATecla » “Teste”) pressionou uma tecla.” e digite: “Vocé soltou a tecla." J) Por fim, altere a mensagem do aviso. Para isso, mantenha pressionada a tecla Shift e, entdo, selecione: “Vos & Sub QuandoPressionarTecla 4 5 EndSub GraphicsWindow.KeyUp = QuandoSoltaATecla GraphicsMindow.showlessage( Voce pressionou uma tecla."|, “Teste”) t Vocé soltou uma tecla. 1 Assim, nosso programa est mais uma vez pronto para ser executado. Sendo assim, clique em Executar, pressione a Barra de Espaco, mantenha-a pressionada por um instante e perceba que nenhum aviso aparece. Agora, solte-a para que, entao, a janela de aviso surja. > 1) Otimo! Com isso, clique em OK e, em seguida, no botdo Fechar do documento, mantendo o Small Basic aberto. Uma janela surge perguntando se existe inte- resse em salvar o trabalho. Nela, clique em Nao. Diretos 4 2 CRIANDO UM PROGRAMA PARA DESENHAR, Através dos ensinamentos anteriores, podemos de- senvolver um programa que possuird todos os concei- tos vistos. Desenvolveremos um projeto simples, mas que permitiré a realizagao de desenhos, com a cor ea forma do trago que determinaremos. E claro, se 0 de- senho apresentar alguma falha ou detalhe que neces- site ser alterado, também poderemos apagé-lo. a) Iniciaremos, agora, nosso tltimo programa de hoje. Através dele, poderemos desenhar e apagar uti- lizando o mouse. Para isso, reuniremos tudo o que foi visto anteriormente nesta aula. Entdo, clique em Novo. b) Com um documento em branco disponivel, digite a Classe e 0 Método abaixo: GraphicsWindow.MouseMove = Mover ‘QuandoOMousese- ©) Agora, precisamos de uma sub-rotina, porém, dessa vez, ela terd mais informagées que as anteriores, como: a indicagao da posigo nos eixos Xe Y, a cor eo tamanho que o trago tera. Sendo assim, digite: ‘Sub QuandoOMouseSeMover x= GraphicsWindow.MouseX y= GraphicsWindow.MouseY If (Mouse.IsLeftButtonDown) Then GraphicsWindow.BrushColor = “Blue” GraphicsWindow.FillEllipse (x, y, 10, 10) Endlf Endsub ) A estrutura esta montada, 0 que jé nos permi- te testé-la. Entdo, clique em Executar e, na janela que surge, clique na area em branco e arraste, fazendo um traco. P LOGICA DE PROGRAMACAO €) Muito bem, nosso programa permite-nos fazer qualquer tipo de desenho, porém, se errarmos algo ou simplesmente nao gostarmos do resultado, nao ser possivel apagar e fazer novamente. Para resolver isso, temos que acrescentar mais uma condigio na sub- -rotina. Comece fechando o programa e, na estrutura, clique depois de Endife pressione Enter duas vezes. ) Na linha em branco que criamos, digite o trecho a seguil If (Mouse.IsRightButtonDown) Then GraphicsWindow.BrushColor = “White” GraphicsWindowFillEllipse (x, y, 40, 40) Endif g) Tendo feito, clique novamente em Executar ¢ faca outro trago na area em branco. Vamos imaginar que vocé nao ficou satisfeito com o mesmo. Entéo, clique com o botdo direito do mouse e, sem soltar, passe o cursor do mesmo pelo risco azul que fizemos apagando-o. h) E, assim, chegamos ao resultado que queriamos! Criamos um programa semelhante ao famoso Paint. Ento, clique no botao Fechar para voltar ao Small Ba- sic, Para encerrar, clique em Salvar, no campo Nome, digite desenhar e, depois, clique em Salvar. i) Chegamos, entao, ao final da aula de hoje. Sendo assim, clique em Fechar. Mas no pense que terminou! Resolva a questdo proposta a seguir: FACA VOCE MESMO! Que tal um desafio? Gosta disso? Acreditamos no seu potencial e no seu desenvol jento. Entdo, para finalizar 0 trabalho e ampliar a fixago dos conceitos vistos, faca um programa em que o usuario seja capaz de fazer desenhos nna cor vermelha com o boto esquerdo do mouse, e na cor verde com o boto direito. Além disso, o traco deverd ter 30 por 30. prsecrceeras OBJETIVOS DA AULA + Aprimorar os conhecimentos através de pro- gramas mais avancados; + Revisar como elaborar célculos através de pro- gramacao; ‘+ Rever como sao usadas as Sub-rotinas 0 QUE VAMOS FAZER Veremos, de maneira mais aprofundada, todo o contetido que vimos na interagao, Para que nao so- bre nenhuma diivida, tudo sera mostrado de maneira detalhada, através de dtimos exercicios preparados especialmente para vocé e que o farao compreender na pratica toda a matéria. Assim, vocé consegue um aprendizado amplo e rico, aperfeigoando cada vez mais seus conhecimentos. Os projetos desenvolvidos para treinar os cédigos serao utilitarios, como, por exemplo, conversor de temperaturas, conversor de moedas, além de programas didéticos. Vamos la! ELABORANDO UM CONVERSOR DE MOEDAS: Como vimos anteriormente, nesta aula, trabalha- remos com alguns utilitarios para que, assim, possa- ‘mos ver novamente os principais conceitos da légica da programagao. Dessa forma, que tal comecarmos fazendo um programa para converter moedas? Afi- nal, atualmente, o délar é considerado moeda uni versal e esté em todos os lugares. No Brasil, utiliz mos 0 real e ambas tém cotacées diferentes, ou seja, nao tém o mesmo valor. Para saber qual é a cotagio, da moeda americana em relagdo & nacional é muito simples! Esse tipo de informagao é anunciado em to- dos os jornais, na segao de Economia e também em 's relacionados ao assunto, revistas, telejornais e sites de buscas. Para sabermos quanto teremos que dar em real para comprar um produto que tem valor em délar, é neces- sério fazer um pequeno célculo. O nosso préximo proje- to fard isso de maneira répida para nés! Vamos la! Para realizarmos este trabalho, precisaremos, pri- meiramente, pensar que resultado exatamente que- remos obter: Veja bem: podemos converter de Délar para Real ou vice e versa. Como estamos em territério, nacional, faremos de Délar para Real, assim, sabere- mos quanto vale determinada quantia na moeda local. Que tal, entdo, vermos o algoritimo para facilitar nos- saatividade? + PROGRAMA: Conversor de Moedas + VARIAVEI ValorDolar CotacaoDolar ValorReal + INICIO Escreva “Insira o valor em Délai Captura valor digitado na variavel ValorDolar Captura valor digitado na varivel CotacaoDolar Faz ValorReal = ValorDolar*CotacaoDolar Escreva “O valor em Real é R$" + a variavel ValorReal + FIM a SS a een LOGICA DE PROGRAMACAO Agora que vimos 0 pseudocédigo, vamos comegar! a) Primeiramente, abra 0 Small Ba b) No Editor, devemos pedir que seja exibida a men- sagem “Insira o valor em Délar:”. Para isso, claro, uti- lizaremos a TextWindow. Portanto, insira o seguinte digo: TextWindow.Writel (“Insira o valor em Délar:”) ©) Na linha de baixo, informamos que a varivel Va- lorDolar sera igual ao valor digitado, Fazemos isso da seguinte maneira: \ValorDolar = TextWindow.Read() d) Lembre-se, sempre, de manter os cédigos orga- nizados, isso facilita muito a visualizacdo e leitura do mesmo. Entdo, antes de iniciar a proxima sequéncia, pule uma linha, ) Para que os célculos sejam realizados correta- ‘mente, temos que inserir a cotagdo atual do délar que varia todo dia. Dessa forma, na janela texto, devemos pedir esse valor TextWindowWriteLine(“‘InsiraacotacaoatualdoDélar:”) f) Para que esse valor seja inserido e que a varidvel CotacaoDolar seja igual a ele, na linha de baixo digite: CotacaoDolar = TextWindow.Read() 8) Jé foram pedidos os dois valores para conversao. © que devemos fazer agora é o célculo que, simples- mente, é a divisdo de um pelo outro, o que resultara no valor em Real. Sendo assim, pule uma linha e insira © seguinte c6digo: \ValorReal = ValorDolar/CotacaoDolar h) Resta exibir na TextWindow o resultado final. Para tanto, pule mais uma linha e digite: TextWindow.WriteLine(“O valor em Real é R$” + ValorReal) Dessa maneira, terminamos nosso primeiro progra- mal Se vocé seguiu todos os passos de maneira cor- reta, o cédigo presente em seu Editor deve ser seme- Ihante ao mostrado a seguir ‘TextWindow.WriteLine(“Insira 0 valor em Délat \ValorDolar = TextWindow.Read() ‘TextWindow.WriteLine(“Insiraacota¢oatualdoDélar:’ CotacaoDolar = TextWindow.Read() zy ValorReal = ValorDolar/CotacaoDolar ‘TextWindow.WriteLine(“O valor em Real é RS” + ‘ValorReal) Com tudo concluido, pode-se executar 0 trabalho, ‘mas, caso queira salvar o projeto, este é 0 momento ideal. 4) Logo apés salvé-lo, Clique sobre o boto Executar, J) Feito isso, veja que, como o esperado, nos é pe- dido 0 valor em Délares. Suponhamos que estejamos efetuando a compra de um perfume importado e, na sua etiqueta, ha o valor USS 52,00. Significa que este 6 seu valor em délares, portanto, no programa, digite 0 niimero 52 e pressione Enter. ¥ _ ©) CADocumentos\Converzor de ngira 0 valor en 1k) Em seguida, vem a cotacao do délar. Como vimos anteriormente, 0 valor da cotagao varia de acordo com © mercado financeiro e vocé consegue facilmente ob- ter essa informagao. Mas, supondo que o délar esteja ha RS 1,58, digite: 1.58 e pressione Enter. ¥ | IngiraacotacaoatualdoDelar: 3 1) Note que o programa nos mostra o valor do pro- dluto em Real. Neste caso, pagariamos do perfume que 1mos anteriormente o valor de R$ 82,16. Saia da ja- nela de execucao pressionando qualquer tecla. ¥ Real ¢ R¢82.16 ‘any key to. continue LOGICA DE PROGRAMACGAO Dessa maneira, encerramos este utilitario! Ele 6 de grande valia, afinal, é um programa stil que podemos usar até mesmo no nosso dia a dia. Neste caso, conver- temos os valores de délar para real, mas, se preferir, pode inverter a ordem ou fazer a converstio de mais de uma moeda, como o Euro, por exemplo. As possibi- lidades so muitas, basta sua criatividade! OBJETOS SEGUINDO OS CLIQUES DO MOUSE No nosso préximo projeto, utilizaremos novamente ‘© comando Turtle do Small Basic, ou seja, a tartaruga que j conhecemos. Dessa vez, faremos que ela siga os cliques do mouse, assim, ela sempre ir se locomover para o local que clicarmos. Vamos ver isso na pratica! a) Ainda com o Small Basic aberto, utilize seus co- nhecimentos para abrir um novo Editor. 1b) Sabemos que utilizaremos o clique durante a exe- cuca do programa e, por isso, devemos, entdo, criar sub-rotinas para capturar os eventos do mouse. E para que este possa ser reconhecido, devemos mostré-lo a0 computador. Sendo assim, na primeira linha, digite: GraphicsWindow.MouseDown = QuandoClicarOMouse ©) Agora, podemos fazer a Sub-rotina, portanto, pule uma linha e insira 0 cédigo: ‘Sub QuandoClicarOMouse 4) Até 0 momento, informamos & maquina que, quando houver um clique, deve também haver uma reacdo. Porém, ainda ndo mostramos qual o tipo de reacdo. Para que a tartaruga possa se mover, devemos, entio, passar as coordenadas que serdo iguais ao cli- que do mouse. Digite: x= GraphicsWindow.MouseX Y= GraphicsWindow.MouseY Turtle.MoveTo(x,y) Com isso, informamos que deve haver um movi- ‘mento por parte da tartaruga. Simples, ndo é mesmo? e) Para finalizar, basta encerrar a Sub-rotina com 0 cédigo: Endsub Com isso, encerramos mais este aplicativo! Os c6- digos no seu Editor devem estar semelhantes ao mos- trado abaixo: GraphicsWindowMouseDown = Mouse QuandoClicarO- Sub QuandoClicarOMouse x= GraphicsWindow.MouseX GraphicsWindow.MouseY Turtle.MoveTo(x,y) Endsub f) Com seus conhecimentos, execute o programa e clique em qualquer local da janela grafica. Veja que a ‘tartaruga surge e segue em diregdo ao local que foi cli- cado. Quando ela parar, clique novamente em um ou- tro local. Depois de testar, encerre o programa e saia do Small Basic. FACA VOCE MESMO! E para que possa treinar seus novos conhecimentos e aperfeigoar suas habilidades, disponibilizamos mais um exer- cicio para vocal Encare-o como mé 1) Vocé certamente deve se recordar do programa para calcular 0 IMC, no é mesmo? Ele nos mostrava © resultado numérico do IMC e, entdo, tinhamos que olhar uma tabela para entender 0 que o valor mostrado significa. Pois bem, neste desafio, seu objetivo serd in- crementar este cédigo, de forma que, quando a pessoa digitar o peso e a altura, j4 seja exibido no programa se ela esté dentro do peso ideal ou ndo. Embora a tabela te- nha varias classificagdes, aconselhamos fazer com que o um desafio para superar e atingir seus objetivos. Boa sorte! programa mostre apenas trés situagdes, que so: se esté cima, abaixo ou exatamente no peso ideal. E para auxi- lid-lo neste proceso, além do pseudocédigo, daremos, também, 0 cédigo do primeiro programa. Assim, basta desenvolver seu complemento. Temos certeza que, com ‘05 conhecimentos adquiridos até aqui e muita atenco, vvocé faré isso sem problema algum! Ento, méos a obra e boa sorte! 14 : E r LOGICA DE PROGRAMAGAO > Pseudocédigo: + Céleulo de Ic: + INICIO; + “Digite seu pes + Recebe 0 PESO; + “Digite sua altura em metro: + Recebe a ALTURA; ‘+ RESULTADO ¢ igual ao PESO dividido pela ALTURA ao quadrado; + "Seu IMCé:” ‘+ Mostra RESULTADO; ‘+ Se RESULTADO for menor que 18.5 entZo mostrar “Vocé esta abaixo do seu peso ideal”. ‘+ Se no, Se o RESULTADO for maior que 25 ent&o mostrar “Vocé est ma do seu peso ideal.” + Se no, mostrar “Vocé esté no seu peso ideal!” * FIM, Cédigo do programa a ser complementado: TextWindowWriteLine(“Célculo de IMC”) TextWindowWriteLine(Digite seu peso:”) peso = TextWindow.Read{) ite sua altura em metros: altura = TextWindow.Read() resultado=peso/{altura*altura) ‘TextWindow:WriteLine(“seu IMC é:”) ‘TextWindowWriteLine(resultado) Ifresultado<18.5 Then ‘TextWindowWriteLine("Vocé est abaixo do seu peso ideal”) Elself resultado>25 Then ‘TextWindow.WriteLine(“Vocé est acima do seu peso ideal”) Else TextWindow.WriteLine(“Vocé esté no seu peso ideal”) Endif E, assim, chegamos ao final de mais uma aula. Com certeza, ela foi muito produtiva, afinal, vocé pode ver os prit cipais recursos aprendidos, aprimorar e fixar ainda mais a sua sabedorial Procure usar sua criatividade e desenvolva outros projetos semelhantes aos executados aqui. Vocé ird se surpreen- der com os resultados. Até a proximal 75 OBJETIVOS DA AULA + Elaborar programas com sons nativos e/ou mii- sicas do computador; ‘+ Publicar projetos na Web; + Importar projetos da Web; + Executar alguns jogos prontos extremamente complexos; + Falaremos um pouco sobre as vinte linguagens de programagao da atualidade. EXECUTANDO SONS NATIVOS DO SMALL BASIC Um recurso bastante conhecido e também muito utilizado por programadores é a execucao de sons. Ele é bastante simples de usar, mas causa um efeito extremamente surpreendente e d um ar de profissio- nalismo aos seus projetos. Sabendo disso, construire- mos um programa utilizando esse conceito, ou seja, a classe Sound. Inicialmente, utilizaremos alguns sons que fazem parte do Small Basic, ou seja, so nativos do programa. Vamos lat a) De acordo com seus conhecimentos, abra 0 pro- grama Small Basic b) Iniciaremos nossas atividades através de um recurso que tem a funcionalidade de entrada e safda gréficas para que, assim, possamos desenhar, preen- cher circulos e retdngulos. Também necessitaremos de uma propriedade que gera um som assim que 0 bo- to do mouse for pressionado pelo usuério, lembran- do que na mesma linha de cédigo precisamos indicar a nossa varidvel. Para isso, insira o seguinte cédigo: GraphicsWindow.MouseDown = QuandoClicarOMouse ©) Nosso préximo passo sera adicionar uma instru- ¢40 que nos permitiré a realizacdo de um grupo de coisas com apenas uma chamada para indicar nova- mente a nossa variavel, pois a mesma tera duas fun- ‘ses: gerar um evento quando o botdo do mouse for pressionado e, ao mesmo tempo, um grupo de coisas ‘com uma s6 chamada. Para isso, pule uma linha pres- slonando duas vezes Enter e digite o seguinte cédigo: ‘Sub QuandoClicarOMouse Com isso, os botdes do mouse poderdio realizar uma série de eventos quando forem clicados, tendo a res- ponsabilidade de trabalhar com os comandos Mouse- Down e Sub, pois os mesmos receberam a indicacéo de nossa variavel. d) Inseriremos, agora, uma condigao que ficaré expressa da seguinte forma: Se o botdo esquerdo do mouse for clicado entao. Sabendo disso, precisamos 7 LOGICA DE PROGRAMACAO Siem im: de alguns comandos, ndo é mesmo? O primeiro seré 0 If para que, assim, possamos tomar diversas deci- sdes. Em seguida, entre parénteses, viré o Mouse para definir as propriedades do mesmo, acompanhado do IsLeftButtonDown para estabelecer a essa linha ape- nas 0 botdo esquerdo. Portanto, digite 0 cédigo abaixo apés pressionar Enter: If (Mouse.IsLeftButtonDown) Then ) Em seguida, adicionaremos a classe Sound. Ames- ma definiré qual a mtisica a ser executada quando 0 bo- to esquerdo do mouse for pressionado. No caso, seré 0 som PlayBellRing(), Portanto, na linha abaixo, digite: ‘Sound. PlayBellRing() £) Muito bem, dessa forma, podemos finalizar a nos- sa primeira condicao. Sendo assim, insira 0 cédigo a seguir apés pressionar Enter: Endif Recapitulando essa nossa primeira parte do cé- digo, podemos notar que, inicialmente, seré gerado um evento quando o botdo do mouse for pressiona- do sobre a Janela Gréfico. Em segulda, adicionamos 0 comando Sub para que, assim, possamos realizar um ‘grupo de coisas com apenas uma chamada. E para que © computador nao fique confuso em relacao as teclas do mouse, definimos o botao esquerdo do mesmo (Is- LeftButtonDown) e, assim que ele for pressionado, sera executado o som BellRing para finalizar essa pri- meira etapa. 8) Nosso préximo passo ser adicionar mais uma 0. Diferente da anterior, ela executard o som Chime, também nativo do programa, Sendo assim, pule uma linha e adicione o seguinte cédigo: If (Mouse.IsRightButtonDown) Then Sound.PlayChime() Endif EndSub 0 seu cédigo deve estar parecido com a imagem a seguir, repare: ¥ 20 Pressionar o Botio do Mouseb - C\Documentos\Programa Sons Nativos\Executar Som a... |_— ‘Sub QuandoclicaroMouse ‘Sound. PlayBel1Ring() EndIf Sound. PlayChime() EndIf EndSub If (Mouse. IsLeftButtonDown) Then If (Mouse. IsRightButtonDown) Then Graphicswindow.MouseDown = QuandoClicarOMouse 1h) E para testarmos esse nosso programa, coloque os seuis fones de ouvido e/ou verifique se as caixas de som | de seu computador estado ligadas. Em seguida, clique sobre o menu Executar (F5) e teste-o algumas vezes. jaa LOGICA DE PROGRAMACAO i) Feche a Janela Grafico, pois iremos salvar esse _j) Em seguida, sobre a caixa Salvar como. Feito programa para que vocé possa utiliza-lo quando qui- isso, clique sobre o botdo Biblioteca e abra a pasta ser. Primeiramente, clique sobre 0 menu Salvar da Documentos através de duplo clique. Barra de Ferramentas. © k) Dé um clique sobre 0 botdo Criar Nova Pasta e digite para ela Programas Sons Nativos. Em seguida, abra essa mesma pasta através de duplo clique. 1) Na caixa de texto do campo Nome, digite Executa Sons Nativos ao pressionar 0 botdo do mouse e, em _ seguida, clique sobre o botao Salvar. ¥ Rede | Nome: Executa Sons Natvos ao pressionar 0 botdo do mouse ~ Cancelar Teo: [Arquivos do Smal Basic ( smalbasic) = m) De volta ao Smalll Basic, clique sobre o botdo Fechar deste documento, Em seguida, clique sobre o menu. Novo. ¥ Esse programa, basicamente, captura os eventos som, o Chime. Sendo assim, o que vocé acha de criar- do mouse e, caso seja dado um clique com o boto es- mos um programa que seja mais agradavel ao usudrio, querdo do mouse, executa um som, ou seja, 0 BellRing. em que ele possa se identificar com 0 programa e es- Se o clique for com o botdo direito, executard outro colher qual miisica quer escutar? i a ee if Sabemos que a classe Sound fornece operacies que permitem a reproduco de sons. Alguns sons sao fornecidos diretamente pela biblioteca do programa, como vimos no programa desenvolvido anteriormen- te. JS as musicas que esto em nossos computadores, caso desejassemos executé-las, precisaremos, primei- ramente, indicar 0 caminho do arquivo detalhada- mente ao programa, ou seja, o nome da pasta em que © arquivo se encontra, o nome completo da mtisica e © formato em que ela se encontra para que, assim, ela possa ser reproduzida corretamente. Vamos ver um exemplo bem simples a respeito desse caminho a ser indicado: Digamos que a mtisica que desejamos que seja re- produzida esta dentro da pasta Documentos em nosso Disco local (C:), veja como ficaria: C:\Documentos\Nome da Musica.Formato Para se conseguir esse caminho com facilidade, bas- ta clicar com o botdo direito do mouse sobre o arquivo desejado e, em seguida, clicar sobre a opcao Proprie- dades, de acordo com a imagem a seguir: ¥ Em seguida, na caixa Propriedades da Musica que foi exibida, vocé tera que clicar sobre 0 menu Segu- ranga, Perceba que logo abaixo temos a op¢ao Nome do objeto, em que a frente do mesmo, podemos obter todos os dados necessarios para que nosso programa possa buscar o esse som diretamente em sua raiz. Po- deremos fazer isso com quantas miisicas desejarmos, apenas copiando esses dados e colando-os em nosso Bed odio LOGICA DE PROGRAMACAO CRIANDO UM PROGRAMA QUE PERMITE AO USUARIO ESCUTAR A MUSICA QUE ELE QUISER. 0s formatos que o Small Basic pode so: WAV, MP3 ou WMA, lembrando que, caso os codecs (programa especifico de 4udio) instalados no computador do usuério tenham suporte para outros formatos, pode- ro ou ndo ser reproduzidos. Sendo assim, vamos co- megar. a) Como nao poderia ser diferente, a primeira coi- sa de que precisamos é a Janela Grafico, ndo é mes- mo? A mesma, agora, seré acompanhada do comando KeyDown, que mesmo gera um determinado evento quando uma tecla pré-determinada por nés, progra- madores, seja pressionada. E todos esses comandos serdo indicados por uma varidvel. Sendo assim, digite o seguinte texto: GraphicsWindow.KeyDown = AoPressionarUmaTecla b) 0 préximo passo é indicar que a instruao Sub (sub-rotina) ser representada pela nossa variavel que, em nosso caso, é AoPressionarUmaTecla. Para isso, pressione duas vezes Enter e insira o seguinte codigo: ‘Sub AoPressionarUmatecla ©) Como jé sabemos antecipadamente que as teclas do teclado ficarao responsdvel por executar essas mti- sicas que adicionaremos brevemente, precisamos ati- vaclas, nao é mesmo? £ ai que entra a LastKey, pois a ‘mesma obtém a tiltima tecla pressiona sobre a Janela Grafico. Portanto, adicione o seguinte cédigo: Tecla = GraphicsWindow.LastKey LOGICA DE PROGRAMACAO 4) Com isso, chegamos ao ponto em que necessi- tamos inserir a primeira condigao, ou seja, se a tecla pressionada for “A” entao. Deixaremos, assim, a tecla “A” responsdvel por executar essa miisica, portanto, pressione Enter para mudarmos de linha e, em segui- da, digite: If Tecta = “A” Then Obs: 0 arquivo de audio que sera inserido sobre esse programa esta devidamente separado na pasta Documentos com o formato em MP3. €) Primeiramente, iremos inserir a classe que nos permitiré a execucao de sons sobre a Janela Grafico do programa, Estamos falando da Sound que, como nao poderia ser diferente, sera acompanhada de uma operacdo que executa arquivos de Audio de varios for- matos: a operago Play. Como vimos em nossas aulas anteriores, apés inserir esses comandos, precisamos abrir paréntese e, também, aspas. Portanto, digite 0 seguinte texto: Sound.Play(" £) Muito bem, os dados do arquivo, ou seja, o CAMI- NHO, o NOME e 0 FORMATO DA MUSICA, devem ser inseridos apés as aspas, ou seja, nesse ponto em que nos encontroamos agora. Portanto, clique com 0 botao direito do mouse sobre a mtisica que deseja ouvir e, em seguida, clique sobre a op¢ao Propriedades. ¥ h) Muito bem, precisamos fechar aspas e o parén- tese, faca isso. Veja a seguir como estd essa linha de cédigo: ‘Sound.Play(“C:\Documentos\Musica.mp3”) {) Pressione Enter para mudarmos de linha, pois fi- nalizaremos 0 programa. Para isso, insira, agora, 0 co- mado Endlf. Em seguida, na linha de baixo, insira o En- Sub de acordo com a imagem mostrada a seguir: ¥ 1g) Na caixa Propriedades da Miisica, podemos no- tar que existem varias opgdes de menus, Geral, Segu- ranga, Detalhes e Versdes Anteriores. Vocé se lem- bra qual desses menus contém o caminho completo do arquivo para que possamos inserirmos em nosso programa? Sendo assim, clique sobre Seguranca e co- pie todo o caminho a frente da opeao Nome do obje- to. “GraphicsWindow.KeyDoun = AoPressionarUma Sub AoPressionarUmaTecla Tecla iicswindow. LastKey If Tecla = “A” Then Sound. Play("C: \Docunentos\Musica.mp3")] Endif EndSub j) Vamos executar 0 nosso programa. Entio, certi- fique-se de que esta com os fones de ouvido e/ou com as caixas de som do computador devidamente regula- das. Vamos 1! De acordo com seus conhecimentos, execute 0 pro- grama e, assim que a Janela Grafica for apresentada, pressione a tecla “A” para que seja executada a nossa miisica favorita, Kk) Muito bem, como vocé pode perceber, a miisica que escolheu foi executada como nés programamos. 80 Se | "| Esse procedimento pode ser realizado com varias miisicas e, assim, além de mais complexo, deixar muito mais agradavel ao usudrio. Continuando com nossa aula, feche a Janela Grfico. Em seguida, clique sobre o Salvar que z se encontra na Barra de Ferramentas. A LOGICA DE PROGRAMACAO Se ei aeoes 1) Najanela Salvar como, dé um clique sobre o botdo, Biblioteca e abra a pasta Documentos com um duplo dlique. > m) Clique sobre o botdo Criar Nova Pasta e reno- meie-a para Programas Musicas do Computador. Em seguida, dé um duplo clique sobre essa pasta. ¥ n) Na caixa de texto do campo Nome, digite Executar Musicas do Computador e clique sobre o boto Salvar. cal Comortador 3 Nome: [Executar Musics do Computador > [ee] Too: |Arquives do Small Basic (‘smalbasic) x] __Cancelar 0) Sabendo que o nosso programa esté devidamen- te salvo para que possamos utilizé-lo quando quiser, j clique sobre o boto Fechar do documento. > = jad PUBLICANDO PROJETOS NA WEB Voce sabia que no Small Basic é possivel publicar todos os seus projetos na Web? O programa nos ofe- rece essa funcionalidade com apenas um clique e deixa, assim, dispontvel para quem quiser visualizé- -lo ou até mesmo baixé-lo para poder estudar. Vamos ver um exemplo bem fécil: imagine que voc8 acabou de fazer um programa e, agora, quer mostré-lo para alguns amigos, Antes dessa op¢do que se tornou in- dispensavel do programa, era tremendamente traba- Ihosa essa op¢ao de compartilhar nossas ideias com os amigos e familiares, pois tinhamos que enviar por e-mail, salvar em pen drives, etc. Agora, essa hist6- ria fol alterada através do botéo Publicar |fg-==) , bastando apenas dar um clique sobre o mesmo e aguardar alguns minutos para que a caixa Micro- soft Small Basic nos informe que o programa foi publicado na Web. Essa caixa contém um cédigo ¥ LOGICA DE PROGRAMACAO ee Logo abaixo, temos a op¢ao Categoria, em que pode- remos enquadrar 0 programa em uma das opgdes dis- ponivel. ¥ => = Jogo Exemolo Sendo assim, o que vocé acha de publicar um de nos- ‘sos projetos na Web para podermos entender melhor? a) Vamos fazer isso para entender todo esse pro- cedimento na prética, portanto, digite o seguinte pro- que nada mais é que a identificagao do programa que acabou de ser publicado, sendo que o mes- mo é usado para compartilhar com os seus amigos caso eles também tenham 0 Small Basic instalado em seu computador, Mas nao pense que se resume em apenas pessoas que tem o programa instala- do, pois ele poder ser visualizado diretamente em uma pagina da Web através de um link que também é fornecido assim que 0 programa é publicado, ¥ bastando apenas enviar esse link para quem voce ‘Vac gee eu pop re Ramanan quiser que veja o seu programa na Web. Lembre-se que 0 mesmo poderé ser executado da mesma manel- ra, Caso queira publicar algum projeto na Web, poderd adicionar alguns detalhes para o mesmo, tais como: Ti- tulo do Programa e a Descrigéo Resumida, em que poderé dar uma breve explicagao de seu programa. V = ‘*) Adicionar Mais Detalhes [Titulo do Programa (max 255) 1)" cophtcatindou Orvshslor = Gaphicsindow Cethandenlor() fF Tieth cede § P= math cetnaenter(500) & _Geophicsdindu FELESpeeR, ®, 22, 22) GraphicsWindow.BackgroundColor = “Lime” For i= 1 To 10000 GraphicsWindow.BrushColor = GraphicsWindow. GetRandomColor() R= Math.GetRandomNumber(620) P = Math.GetRandomNumber(500) GraphicsWindow.Filllipse(R, P, 22, 22) EndFor 1b) Esse programa exibiré a Janela Gréfico na cor ver- de, onde a mesma apresentaré de uma forma cronome- trada, exatamente Dez mil cfrculos coloridos. Sendo as- 1 clique sobre o menu Executar para que possamos ver o seu funcionamento primeiramente no programa, DescrigSo Resumia (max 1024) eee ) Muito legal esse programa, nao é mesmo? Dé um clique sobre 0 botdo Fechar da Janela Gréfico para que, assim, possamos voltar para o programa. ¥ LOGICA DE PROGRAMACAO ‘= domColor para atribuir cores aleatérias ao pincel e também a Math.GetRandomNumber para atri- buir coordenadas R e P aos cfrculos. ¥ d) Dé um clique sobre o menu Publicar que se en- contra na Barra de Ferramentas e aguarde alguns segundos, pois o programa iré se encarregar de fazer todo o procedimento para nés. ¥ eu proroma fi pacedo ra web ‘ts epee a per pop KRL927 et spoon on ase Ines Pepen in Ea ae nt me em te 8) Muito bem, com todos os requisitos devidamente reenchidos, podemos visualizar o programa na Web, wo € mesmo? Sendo assim, clique sobre o Link de acordo com a imagem de a seguir. Be “es prepara pbc wed ao etn pnp pc go pap. KRL927 €) Apés esse procedimento, é exibida uma mensa- gem em que consta a identificagao de seu programa, 0u seja, 0 cédigo que é usado para que vocé possa compartilhar todo 0 seu trabalho com os seus amigos. Logo abaixo, temos o Link. Com ele, vocé poder visu- alizar o seu programa diretamente na Web. Mas antes, vamos adicionar alguns detalhes para tornar o nosso cédigo mais compreensivo aos nossos amigos e para as pessoas que queiram utilizé-lo, Portanto, clique so- bre a opcao Adicionar Mais Detalhes. ¥ f) Feito isso, clique sobre a caixa de texto da opgao ‘Titulo do Programa e digite: Circulos de cores ale- atérias. Em seguida, clique sobre a caixa de texto da opcao Descrigdo Resumida e insira o seguinte texto: Programa que utiliza a GraphicsWindow.GetRan- 1h) Como podemos observar, 0 programa foi exe- cutado da mesma maneira como se estivesse sobre 0 Small Basic. Caso queira testé-lo novamente, basta clicar sobre o botdo List Program e esperar carregar. Faga isso e, em seguida, clique sobre a Barra de Rola- gem para que possamos visualizar 0 nosso cédigo. ¥ eres cron “repens trblar » rplctindn etanntsr() 1th eaeomaer ss) 1 Riertannmnater (a) rpheninne Pea, 2, 22) 4) Sendo assim, Feche o Internet Explorer e, em se- guida, clique sobre o botdo Atualizar e Fechar da cai- xa Microsoft Small Basic para que possamos voltar a0 programa. J) De acordo com seus conhecimentos, salve esse programa com o nome de Circulos de Cores Aleaté- rias, dentro da pasta Documentos de seu computa- dor. Em seguida, Feche o Small Basic. IMPORTANDO PROJETOS DA INTERNET Da mesma maneira que podemos publicar um Pro- jeto da Web como acabamos de fazer, também pode- mos Importar um que tenhamos achado bom e, assim, alterar seus cédigos, usé-lo para o preenchimento de algum cédigo ou apenas estudé-los. Vamos ver como seria e aproveitar o mesmo que acabamos de publicar para termos a certeza que realmente ele est hospeda- do no Site do Small Basic. a) Abra o Internet Explorer de acordo com seus co- nhecimentos. Em seguida, dé clique sobre a Barra de Endereso e digite: http://smallbasiccom/program/. Pressione Enter ao final. b) Nesse Link, basta digitarmos o cédigo do progra- ma que desejarmos visualizar sobre a caixa de texto do campo Program Listing e pressionar o botao List LOGICA DE PROGRAMACAO Program. Sabendo disso, clique sobre essa caixa de texto, digite KRL927 e pressione List Program. ©) Dé um clique sobre a Barra de Rolagem para podermos visualizar o cédigo do mesmo, Em seguida, feche o Internet Explorer. JOGOS PRONTOS PARA ESTUDO Falaremos, agora, sobre os jogos prontos existentes no Small Basic. Eles s4o extremamente complexos € esto totalmente disponfveis para que possamos nos divertir com eles e, ao mesmo tempo, baixé-los para que, assim, possamos estudé-los. O jogo mais famoso deles, com certeza, é 0 TETRIS que é praticamente uma cépia fiel do famoso jogo de TETRIS e, também, ‘0 mais baixado pelos usuarios do site. Veremos, tam- ‘bém, o jogo SOKO que é o mais incrivel visualmente ja construido pela plataforma do Small Basic, que fol baseado pelo Sokoban. Veremos, também, um jogo incrivel, o ASTEROIDS, em que uma Nave tem a fina- lidade de destruir os asteroides em seu caminho. 0 que vocé acha de visualizarmos todos eles e realizar alguns testes? a) Sendo assim, abra o Internet Explorer. Em se- guida, clique sobre a Barra de Endereso e digite Ihttp://smalibasic.com/. 'b) Vamos comear pelo mais baixado entre os usué- rios, néo é mesmo? Sendo assim, digite TETRIS na cai- xa de texto da opcao Program Listing e, em seguida, pressione List Program. ¥ 6) Assim que o jogo tiver iniciado, veja a funciona- lidade dele, utilizando as setas direcionais do teclado, Em seguida, visualize toda a estrutura do cédigo uti- lizando a Barra de Rolagem. Caso haja a necessidade de reiniciar 0 jogo, basta clicar sobre o botao List Pro- gram. > LOGICA DE PROGRAMACAO ) Muito bem, apés utilizar todas as funcionalidades do TETRIS e, também, visualizar a sua complexa estru- tura, vamos desfrutar do jogo mais incrivel visualmen- te. Portanto, dé um duplo clique sobre a caixa de tex- to Program Listing para selecionar seu texto e digite SOKO. Na sequéncia, pressione List Program.> ) Assim que a pagina for carregada, pressione Enter para iniciar 0 jogo e lembre-se que o objetivo é empur- rar todos os Cristais Azuis até os campos amarelos com pequenas estrelas, de acordo com a imagem de base a seguir, para que assim possa avancar de fase: £) Apés testé-lo, clique sobre a Barra de rolagem para que possa visualizar todo 0 cédigo do jogo SOKO. Note que toda a estrutura é bem parecida com a que nés aprendemos durante todo o curso de Légica, pois os cé- digos utilizados na elaboragdo do mesmo sao todos pa- drdes do Small Basic. Microsoft Small |®> Program Listing: ee aed LOGICA DE PROGRAMACAO Isso quer dizer que, se tivermos um pouco de imaginagao com o aprendizado que obtivemos durante todo 0 curso, podemos também desenvolver programas parecidos ou até mesmo melhores que estes. ¥ evelshapes[4}(p-1] = Shapes. Addtaage(dmage("A")) angle = hath. etnandoatnber(20) = Math.Cos(angle * 0.4174) * 1200 v= hath sin(angle * 0.0124) * 600 Shapes.ove(Levelshapes{i]{p-1], x¥ + 512, yw + 250) Shapes. aninate(Ievelshapes[i][p-1], (9-1) * 50 + korrx, (1) * 48 - @, antatime) ‘lserf blockcode = 70" Then ‘erysfal on wood Ievelshapes[]{p-1] = Shapes. Addimage(Smage( 8-1) angle ~ Nath.GetRandoatunber( 0) svr= Nath.cos(angle * 0.8174) * 1200 y¥ = Rath. Sin(angle * 0.0174) * 600 ‘Shapes.ove(Levelshapes{i}[p-1]. x¥ + 512, yv + 350) ‘Shapes oninate(levelshopes[i}{p-!], (p-1) * 50 + hares, (1) * 40 - 0, anlatime) ‘suserf Blockcode <2 Then evelshapes[Z]{p-1] = Shapes. Addumage(snage(blockcode)) nale - hath CetRondontinber(20) r= Nath.cos(angle * 0.0174) * 1200 yw = hath Sin(angle * 0.0174) * 668 ‘Shapes.nove(levelshapes{[p-1], x0 + S12, yv + 358) ‘hopes Aninate(levelshopes[t}{p-1], (p-1) * 58 + korex, (1) * 49 - @, antwtime) taseif blockcode = 2 Then Aevelshapes[4][p-1] = Shapes.Addtmage( inage("0"]) angle - Hoth. cetRandoamaaber(360) r= Hath.Cos(angle * @.0174) * 1200 yy = Hath.Sin(angle * 0.0174) * 600 ‘Shepes nove(levelshapes(}[p-i], x0 + 512, yv + 358) ‘Shapes animate(levelshapes[}{p-2], (p-1) * 58 + korex, (1) * 40 ~ @, antmtime) 2) Em seguida, clique novamente sobre a Barra de rolagem para que possamos voltar ao topo da pagina. Nosso objetivo, agora, seré conhecer 0 ASTEROIDS, como prometido anteriormente. Vocé iré se surpre- ender com essa jogabilidade, pois ele é um jogo que prende a atengdo do usuario, por ter uma batalha tra- vada no espago. Tem como objetivo destruir os Aste- roids em seu caminho através de uma pequena Nave. ‘A jogabilidade se baseia da seguinte forma: a barra de espaco é utilizada para atirar sobre os Asteroids, as setas direcionais do teclado sevem para mové-la para cima, para baixo e para direcioné-la. Sendo assim, di- gite ASTEROIDS na caixa de texto da opcao Program Listing, pressione Enter e teste o programa por al- guns minutos. Caso queira reinicié-lo, basta clicar so- bre o botao List Program. > Mads ei Mie 4 LOGICA DE PROGRAMACAO h) Em seguida, clique sobre a Barra de rolagem para visualizar toda a estrutura desse jogo e note que, da mesma maneira que os jogos que vimos anteriormente, esse também sao constru(dos utilizando apenas os co- mandos vistos durante o curso, nao é mesmo? Sendo assim, feche o Internet Explorer. ¥ santte(otay = 3) Progran.Delay(3600/ ps) 16 (pare = ©) Then AS 20 LINGUAGENS MAIS POPULARES DA ATUALIDADE (INFORMACOES COMPLEMENTARES) ‘A linguagem de programagao é uma forma padro- nizada para proclamar instrugdes para um computa- dor. E um conjunto de regras usadas para definir um programa de computador como vimos durante nosso curso de Légica de Programacao. Uma linguagem per- mite que um programador especifique precisamente sobre quais dados um computador vai atuar, como es- tes dados serdo armazenados ou transmitidos e quais agdes devem ser tomadas sobre intimeras circunstén- cias. 0 conjunto de palavras, composto de acordo com essas regras, constitui o cédigo de um software. Uma das metas das linguagens de programacao é permitir que programadores tenham uma maior produtivida- de sobre tudo 0 que diz respeito a computador e per- miitir, assim, expressar suas intencdes mais facilmente do que quando comparado com a linguagem que um computador entende nativamente. Assim, linguagens de programagao so tencionadas para adotar uma construgio gramatical de nivel mais alto, que pode ser mais facilmente entendida por programadores huma- nos. Linguagens de programagao sdo ferramenta: portantes para que programadores possam escrever programas mais organizados e com maior rapidez. Elas tornam, também, os programas menos depen- dentes de computadores ou ambientes computacio- nais especificos (portabilidade). Vamos continuar a nossa aula apostilada e falar um pouco sobre curiosidades e informages complemen- tares a respeito de linguagens de programago. Come- ‘aremos, entdo, com as 20 linguagens mais populares atualmente: Vamos ld! 1. Java: é uma linguagem de programago multipla- taforma. Os programas em Java podem ser executados ‘em qualquer sistema operacional, desde que o interpre- a 87 oe 4 tador esteja instalado. Ela 6 uma linguagem orientada a objetos e, diferentemente das linguagens convencio- nais, é compilada para um bytecode (cédigo em dados) ‘em que o mesmo é executado por uma maquina virtual e, também, em portabilidades (celulares, etc). 2. C: elaborada em meados da década de 70, mas ainda 6 amplamente utilizada. A grande vantagem do C6 permitir escrever programas extremamente otim zados para a maquina e, ao mesmo tempo, ter varias funges prontas, como uma linguagem de alto nivel, que podem ser utilizadas quando nao for necessario gerar um cédigo tao otimizado. 3. G++: mantém os recursos do C original, mas traz muitos recursos novos, como recursos orientados a objetos. Também bem mais facil de utilizar. E uma lin- guagem multi-paradigma de uso geral, considerada de médio nivel, pois combina caracteristicas de alto e baixo padrao de linguagem. 4. PHP: linguagem interpretada da forma livre e utilizada para gerar contetido dindmico. PHP é uma linguagem de programacao de dominio especifico, ou seja, sua finalidade se estende a um grande campo de atuagio que é 0 desenvolvimento na web. Seu prop6- sito principal é implementar solugdes velozes, simples eeficientes. 5. Python: podemos consideré-la de alto nivel, pois a mesma pode ser interpretada, imperativa, orientada a objetos do tipo dinamica e forte. Com uma sintaxe muito simples e intuitiva e, ao mesmo tempo, bastan- te poderosa. Pode ser usada por toda classe usudrios pela sua facilidade. 6. C#; fortemente elaborada, sua sintaxe orientada a objetos foi baseada no C++, mas incluindo muitas outras influéncias de outras linguagens de programa- 40. Uma de suas marcantes caracteristicas 6 que ela é considerada a linguagem simbolo do NET por ter sido criada praticamente do zero para funcionar em sua plataforma e, também, sem preocupacdes de compa- tibilidade com cédigos existentes. 7. Visual Basic: 6 uma linguagem de programa- sao para Windows, baseada em eventos e em objetos. Determina aplicativos cuja operago é motivada pela escolha de algum objeto grafico, que representa uma ago por parte do usuario, sendo que o mesmo perml- te criar aplicativos tanto para maquina local quanto para ambiente de rede. 8. Objective-C: trata-se de uma sub-linguagem da linguagem C, além de elementos estruturados em ‘Smalltalk. Por ser hfbrida de duas linguagens com pa- radigmas diferentes ¢ dificil de ser classificada, Ela é projetada para permitir uma programacdo orientada a objetos sofisticados, LOGICA DE PROGRAMACAO 9, Perl: considerada estavel e de multiplataforma, 6 usada em aplicagdes de missées criticas em todos os aspectos, sendo destacado o seu uso no desenvolvi- mento web de todos os tipos. Permite a criago de pro- gramas em sistemas operacionais. Além de ser muito utilizada para programacdo de formuldrios www e em tarefas administrativas de sistemas UNIX - onde a lin- guagem nasceu e se desenvolveu. 10. Ruby: multiparadigma, do tipo dinamicoe forte, com gerenciamento de meméria automatico, original- mente planejada e desenvolvida para ser usada como linguagem de script. Foram inspiradas principalmen- te por Python, Perl, Smalltalk, Eiffel, Ada e Lisp, sen- do muito mais parecida em varios aspectos a Python. Uma de suas caracteristicas mais marcantes é que to- das as variaveis sdo objetos, onde até os “tipos primi- tivos” tais como inteiro, real, entre outros sdo classes. 11. JavaScript: baseada na linguagem de progra- macao ECMAScript é, atualmente, a principal lingua- gem para programacao em navegadores web. Foi con- cebida para ser uma linguagem script com orientacao a objetos, baseada em protétipos. Possui suporte a programagao funcional e apresenta recursos, como fechamentos e fungSes de alta ordem, usualmente in- disponiveis em linguagens populares como Java e C++. 12, Delphi: muito empregada na ampliacao de apli- cages em contetidos destacados, aplicagdes multi-ca- madas e cliente/servidor compativel com os bancos de dados mais conhecidos do mercado. 0 Delphi pode ser utilizado para diversos tipos de desenvolvimento de projeto, abrangendo desde Servigos a aplicacdes Web e CTI 13. Lisp/Scheme/Clojure: é uma familia de lin- guagem em que a mesma mostra que é possfvel usar exclusivamente fungdes matematicas como estruturas de dados elementares. £ explanada, de modo que 0 usudrio digita expressdes em uma linguagem formal definida e recebe de volta a avaliagdo de sua expres- sio. Desse ponto de vista, podemos pensar sobre ela ‘como uma calculadora que, ao invés de avaliar expres- ses aritméticas, avalia expressdes simbélicas, cha- madas de expressdes. 14. Pascal: linguagem de alto nivel, criada durante a década de 60. £ uma linguagem bastante estrutura- dae com regras muito rigidas, o que a torna dificil de usar. A linguagem Pascal foi criada para incentivar a programacao modular e estruturada e facilitar a cria- gao de procedimentos com baixo acoplamento e alta coes4o. Um programa em Pascal é composto de cons- tantes e variaveis globais, procedimentos e fungdes reentrantes e um programa principal. Seo 15. Assemby: foi, provavelmente, a primeira lin- guagem de programacao da histéria, que surgiu na década de 50. A ideia da Assembly é usar um coman- do em substituigao a cada instrusio de maquina. Nela, cada uma dessas instrugdes equivale a uma instrucao do processador. Ao invés de usar instrugées como 10101011, vocé pode usar outras bem mais faceis de entender e de memorizar, tais como: add, div, mul, and, or, not, etc. Vocé também pode criar variaveis, que so pequenos espacos na meméria RAM reserva- dos para guardar algum tipo de dado, que o programa precisard, 16. SAS: a mesma fornece'uma linguagem de pro- gramacdo enérgica e flexivel da matriz em um am- biente ativo para os programadores de alto nivel. Fornece, também, uma interface de programacio inte- rativa e andlise exploratoria de dados com construsao {gramatical simples, tornando-se mais fécil para tradu- zir formulas matematicas em declaragées. Voce pode programar facilmente e eficientemente com os muitos recursos para expresses aritméticas, | 17, Transact-SQL: é um grande exemplo de ban- co de dados. Isso decorre da sua simplicidade e faci- lidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e nio 0 camino para chegar a ele. Ela é uma linguagem decla- rativa em oposigo a outras linguagens procedurais, ‘0 que reduz o ciclo de aprendizado daqueles que ini- iam na linguagem. 18. RPG: uma das poucas linguagens criadas para maquinas de cartes. Isso acontece porque a lingua- gem evoluiu consideravelmente ao longo do tempo. Ela foi originalmente desenvolvida pela IBM na déca- da de 1960. Para descrever a finalidade da linguagem: geracio de relat6rios a partir de arquivos de dados, incluindo correspondéncia total de sub-registro e re- latérios. 19. MATLAB: um software destinado a fazer célcu- Lf i los com matrizes. Por ser um software interativo de JY ato desempenho também integra anélise numérica, si célculo com matrizes, processamento de sinais e cons- trusio de gréficos em ambiente ficil de usar em que problemas e solugdes so expressos somente como Ji) cles e sao escritos matematicamente, ao contrario da programacao tradicional 20. Ada: linguagem de programagao estruturada, uv de tipagem estatica. £ uma linguagem imperativa, orientada a objetos e é uma linguagem de alto nivel, | originada de Pascal e outras linguagens com 0 intuito de substituir as centenas de linguagem de programa- LOGICA DE PROGRAMACAO so usadas, Ada é uma aplicago com compiladores validados para uso confidvel em missdes criticas, tais como softwares de aviacao. Essa pequena listagem sempre ird variar, pois as linguagens ficardo desatualizadas ou coisa parecida. Novas iréo aparecer repentinamente para nos surpre- ender. £ praticamente impossivel dominar todas elas, Bons programadores sabem programar relativamente bem em 3 ou 4, NO QUE VOCE SE TORNOU? No final deste curso, vocé deve pensar: “Mas no que eu me tornei? Em que eu sei programar?” Esperei muito para chegar essa hora e lhe surpreen- der. Observe 0 cédigo abaixo: ‘ Qual a fungao deste trecho em JavaScript? Simples, nao é mesmo? A resposta, como podemos observar, é: Mostrar na tela a frase “Meu primeiro cédigo em Ja- vaScript’, Agora, observe esse trecho de cédigo elaborado so- bre a linguagem de programacao .NET: t Console Write("Meu primero cédigo em NETI"); Console Readkey(); , Com certeza a mesma coisa que o anterior, ou seja, essa parte do programa exibiré a mensagem “Meu primeiro cédigo em .NET”. Esse dois trechos de cédi go foram feitos respectivamente em JavaScript e Do- tNet. Duas linguagens de programa¢4o muito utiliza- das na atualidade por programadores extremamente profissionais nessa drea. Nés ndo falamos nada a res- peito dessas linguagens durante todas as aulas do cur- 0 e, mesmo assim, vocé conseguiu identificar 0 que esses trechos de cédigo fariam! Queremos mostrar, com isso, que, se vocé possuir uma boa base de Logica de Programagao, basta aprender os detalhes da li guagem com que for trabalhar, pois, o principal, que & Pensar e Agir como programador é algo que vocé jé tem internalizado. sed LOGICA DE PROGRAMACGAO FACA VOCE MESMO! Para que voc® possa praticar ainda mais e desenvolver projetos no Small Basic, deixaremos uma breve explica- ‘edo do programa que teré que fazer, ou seja, 0 passo a asso para facilitar a vocé todo o desenvolvimento do programa e, também, os comandos a serem utilizados. Nao fique preocupado, pois, se em algum momento sur- gir alguma divida, basta rever os conceitos vistos em sua apostila, pois ela foi desenvolvida exatamente com ‘05 mesmos comandos que verd a seguir! Também hd um gabarito disponivel no final da apostila, em que podera encontrar todos os cédigos dos exercicios. Vamos Id! 1. Faremos um programa que funcionaré como uma lousa, ou seja, assim que executado, ele Ihe proporciona- r fazer desenhos na cor branca. Esse programa ter que ter as seguintes caracteristicas: primeiramente, a Janela Gréfico seré exibida na tela e a mesma teré que ser apre- sentada na cor verde. Jd 0 Cursor do Mouse fara riscos (desenhos) na cor branca. As caracteristicas podem ser visualizadas a seguir: + Exibira Janela Grafico na cor verde escuro (DarkGreen); + Definir o cursor do Mouse na cor branca (White) para que possamos fazer desenhos ou apenas es- crever no quadro; + OMouse serd reconhecido assim que pressionado e, também, quando for movimentado (MouseDown e MouseMove). Comandos a serem utilizados: + Varidvels; + Graphicswindow; + BackgroundColorBackgroundColor; + DarkGreen; + PenColor; © White; + MouseDown; ‘+ MouseMove; = Sub; ‘| Mousex; + Mousey; if + IsLeftButtonDown; + Then; + Endif; = EndSub. 2. Nosso ultimo programa, consiste em um desafio, que requereré de vocé o uso de alguns recursos e concei- tos nao abordados diretamente em nosso curso, porém sabemos que com um pouco de estudo, concentragdo e treino vocé serd capaz de crié-lo. Tal aplicativo terd a se- guinte finalidade: quando a Janela Grafico for apresen- tada na tela, apareca lentamente o texto Logica de Pro- gramago sobre centenas de pequenas bolas coloridas. Veja s seguir as suas caracteristicas: + Apresentar a Janela Grafica; + Aparecer o texto “Logica de Programac3o; * Otexto deverd aparecer lentamente sobre cente- nas de pequenas bolas coloridas. Veja os comandos a serem utilizados para tal finalidade: GraphicsWindow; BackgroundColorBackgroundColor; midnight; FontSize; To; BrushColor; GetRandomColor; Math; GetRandomNumber; Fillllipse; EndFor; DrawBoundText; EndWhile, E, assim, finalizamos mais uma aula e, também, 0 curso de Logica de Programacio que, como deu para perceber, se vocé possuir um bom embasamento sobre Logica de Programaco basta aprender os detalhes das linguagens com que for trabalhar, pois, como jé falamos anteriormente, o principal, que € Pensar e Agir como programador é algo que vocé j4 possui. Agradecemos sua companhia e esperamos té-lo ajudado a conhecer e compreender a importancia que € essa surpreendente linguagem de programago, com a qual podemos elabo- rat programas desde os mais simples até os mais com- plexos, tudo dentro de um programa que nos propor- ciona um layout maravilhoso. Nés nos despedimos por aqui, mas esperamos reencontré-lo em breve para mais um curso! Até logo! a)A linguagem de programacao é um método pa- dronizado para a comunicagdo computador, pro- gramador. b)A tomada de deciséo ¢ um processo que ocorre quando temos caminhos diferentes & seguir. €) Logica de Programagao é a base para que possa- mos entender linguagens de programaco, além de qualquer outra estrutura que envolva dados que necessitem ser estruturados. 3- Alternativa D AULAOZ 01)-A 02) A- Entrada B- Entrada C- Entrada 03)-D 04)-c D- Processamento E-Saida 05)-D AULA 03 01) av b)F av dF 02) + VARIAVEIS PRIMEIRO; SEGUNDO; SOMA. 03) = VARIAVEIS MESO1; MESO2; 04) + VARIAVEIS MESO1 do tipo INTEIRO; MES02 do tipo INTEIRO; SOMA do tipo INTEIRO; [MEDIA do tipo NUMERO EM PONTO FLUTUANTE. LOGICA DE PROGRAMACAO 05) (4) Aplicagao de Acido Fosférico (1) Aplicagao de leite decal (2) Uso de peneiras (3 ) Aplicagao do gas Anidrido Sulfuroso AULA 04 01) 02) ¢ 03) a) operadores relacionais b) operadores aritméticos ©) operadores légicos d) operadores aritméticos e) operadores relacionais 04) av dv b)F er av 01)-€. 02) - 03) -F;V; V;V. 2. AULA 07 01) TextWindowWriteLine("Célculo de IMC") TextWindow.WriteLine(*Digite seu peso:”) peso = TextWindow.Read|) TextWindow.WriteLine("Digite sua altura:”) altura = TextWindow.Read() resultado=peso/(altura*altura) TextWindow.WriteLine(“seu IMC &:") TextWindow.WriteLine(resultado) 02) ‘TextWindow.WriteLine("informeoprimeirovalor:”) PRIMEIRO = TextWindow.Readi) ‘TextWindow.WriteLine(“informeosegundoval SEGUNDO = TextWindow.Read() RESULTADO = PRIMEIRO*SEGUNDO. TextWindowWriteLine("O resultado é:") TextWindow.WriteLine(RESULTADO) 1 LOGICA DE PROGRAMACGAO A AULA OB. AULA 11 = 01) o1) TextWindowWriteLine(“Escreva a senh: TextWindow.WriteLine(*Célculo de IMC”) 10 TextWindow.WriteLine("Digite seu peso:") TextWindow.Read() peso = TextWindow.Read() While numero <> senha TextWindow WriteLine("“Digite sua altura:”) TextWindow.WriteLine("Senha errada”) altura = TextWindow-Read() L TextWindow.WriteLine(“Escreva a senha:") resultado=peso/(altura*altura) numero = TextWindow.Read() TextWindow.WriteLine("seu IMC é:”) L) EndWhile TextWindow.WriteLine(resultado) Fnumero g.seotahap IFresultado < 18.5 Then be Tos indoveWitallne(-Conetel) TextWindow.WriteLine("“Vocé esté abaixo do seu s 02) peso ideal.”) Senha = “1415” Elself resultado > 25 then Tentativas = 0 TextWindowWriteline(“Vocé esté acima do seu B While Digitado <> Senha And Tentativas <3 peso ideal.”) 7 TextWindow.WriteLine("Digite a senha:”) ee Tentativas = Tentativas +1 - Digitado = TextWindow.Read{) Teaiivetoaiiehtiont ‘Vocé esté no seu peso i EndWhile ideal i) ul If Digitado = Senha Then Endif f TextWindow.WriteLine("Vocé acertou a senha!”) G Else TextWindow.WriteLine(“Excesso de tentativas!”) bre | ba Endit GraphicsWindow.BackgroundColor = “DarkGreen” al GraphicsWindow.PenColor = “White” AULA GraphicsWindow.MouseDown = PressionarMouse e 01) Graphics Window.MouseMove = MoverMouse GraphicsWindow.BrushColor = “Green” Sub PressionarMouse = GraphicsWindow.FillRectangle(100, 70, 50, 200) pasiavels = ciaeti a wiicow: Mouser 2) variavelY = GraphicsWindow MouseY Pi icawin Color = “Grail EndSub GraphiesWindow: BackgroundColor = "Gray sub MeteiMouse i GraphicsWindow.PenColor = “Magenta X = GraphicsWindow.Mousex i GraphicsWindow.PenWidth = 10 Y = GraphicsWindow.MouseY GraphicsWindow.DrawEllipse(200, 150, 120, 120) If (Mouse.IsLeftButtonDown) then s GraphicsWindow.DrawLine(varidvelX, varidvelY, x, s y) AULA 10 endif Graphics Window.MouseMove = QuandoOMouse- Naciavel bed et varidvel Sub QuandoOMouseSeMover Ends ' 02) raphicsWindow.MouseX GraphicsWindow. BackgroundColor = “midnight” iJ ¥ = GraphicsWindow.MouseY GraphicsWindow.FontSize = 80 li If (Mouse.IsLeftButtonDown) Then raphicsWindow.Width @ While ("True”) , GraphicsWindow.BrushColor = “Red” For i='50 To 100 i GraphicsWindow.FillElipse (x,y, 30, 30) GraphiesWindow.8rushColor = GraphicsWindow. Endif GetRandomColor() : x= Math.GetRandomNumber(640) If (Mouse.|sRightButtonDown) Then y= Math.GetRandomNumber(480) GraphicsWindow.BrushColor = “Green” GraphicsWindowFillElipse(x,y, 10, 10) GraphicsWindow-FillEllipse (x, y, 30, 30) EndFor 3 endif GraphicsWindow.BrushColor = “Black” 7 GraphicsWindow.DrawBoundText(50,80,LP-00, “Légica de Programacao”) EndWhile ry EndSub Acelere o seu n crescimento profissional ny Antecipe seu Sucesso © negocios tecnologia « ooee) ) ml oe evoluaprofissional.com.br — an p Antecipe seu | Acelere o seu crescimento profissional Pee Lod a x Ree) JP | Ree! FP) a evolua pr ssiona ® evoluaprofissional.com.br 2 Logica de Programacao

Você também pode gostar