of 22 /22
Lógica de Programação para não programadores Desenvolvido por Fernando Anselmo Versão 1.0 Este arquivo e de Distribuição Gratuita para todos os que desejam aprender a Lógica de Programação Lógica de Programação

Lógica de Programação para não programadoresfernandoanselmo.orgfree.com/curso/curso07/apostila.pdf · Lógica de Programação para não programadores Introdução Lógica de

Embed Size (px)

Text of Lógica de Programação para não...

  • Lgica de Programao para no programadores

    Desenvolvido por Fernando AnselmoVerso 1.0

    Este arquivo e de Distribuio Gratuita para todos os que desejam aprender a Lgica de Programao

    Lgica de Programao

  • Lgica de Programao para no programadores

    IntroduoLgica de programao a maneira como as ideias so encadeadas parapermitir a escrita de um programa de computador, um algoritmo. Um algoritmo uma sequncia de passos para se executar uma funo. Saber lgica deprogramao saber o melhor jeito de escrever um cdigo, para o computadorinterpretar corretamente. saber se comunicar com a maquina a partir deuma linguagem seja l qual for.

    Scratch um programa com o objetivo de ensinar lgica deprogramao em blocos, foi criada em 2007 pelo Media Lab doMIT. possvel criar histrias animadas, jogos e outrosprogramas interativos. Seus objetivos principais so: criaruma linguagem mais suscetiva manipulao, ser mais sociale mais significante. Assim a forma como os blocos podem sermanipulados lhe confere uma possibilidade rpida de

    aprendizagem atravs da prtica de manipulao e teste dos projetos.

    Sonic Pi um ambiente de codificao parainterpretao de performances musicais ao vivo, foicriado para apoiar tanto aulas de lgica deinformtica quanto aulas de msica nas escolas. Foidesenvolvido por Sam Aaron no Laboratrio deInformtica da Universidade de Cambridge emcolaborao com Raspberry Pi Foundation. Utiliza ummecanismo de sntese Supercollider e modelocronometragem precisa, sendo possvel ser utilizadopara codificao ao vivo e outras formas de performance musical algortmica ede produo.

    VisuAlg um programa que edita, interpreta eexecuta algoritmos com uma linguagem prxima doportugus estruturado como um programa normal decomputador. um programa de livre uso edistribuio, empregado no ensino de programaoem vrias escolas e universidades no Brasil e noexterior, sendo um bom recurso para quem estiniciando no aprendizado de algoritmos, no s parapraticar a sua criao mas tambm para melhor

    entender sua execuo por meio do visualizador de variveis que funcionacomo um depurador.

    A lgica de programao necessria no apenas para pessoas que desejamtrabalhar com desenvolvimento de sistemas e programas. Saber como ordenara informao e as aes em um fluxo lgico essencial para aprender qualquermatria.

    Fernando Anselmo Folha 2

  • Lgica de Programao para no programadores

    Os blocos de programaoNeste captulo, vamos usar o Scratch para entender como funciona osconceitos de conjuntos de informaes, sensores, variveis e blocos de decisoe repetio. Scratch uma linguagem programao que foi especialmente concebido parafazer animaes e jogos com facilidade. Um ambiente de programao simplese intuitivo. Recomendado para ser usada por principiantes, jovens ou adultos,que queiram iniciar-se no mundo da programao de computadores, ganhandogosto e asas para voos mais altos noutras linguagens mais poderosas eprofissionais. A tela inicial do Scratch composta pelas seguintes reas:

    Blocos de Comandos, que apresenta e possibilita a escolha dos grupos decomandos desta linguagem de programao. Esto dispostos em dezcaixas: Movimento, Aparncia, Som, Caneta, Variveis, Eventos,Controle, Sensores, Operadores e Mais Blocos. Cada caixa possui umacor especfica para facilitar a visualizao.

    Edio, que possibilita a criao do projeto, ou a programao deeventos (ou scripts).

    Bastidores, uma lista miniaturas dos atores que esto sendo utilizadosno projeto.

    Apresentao, que viabiliza a execuo do projeto criado. Palco, para definio dos atores (ou sprites1) e cenrios que integram

    um dado projeto.

    Movimento e Interao com AtoresQuando o Scratch aberto, no Palco j aparece o gato (este conhecidocomo Ator). possvel inserir ou criar um novo ator. Da mesma forma, possvel ter vrios atores no palco.Para determinar o que cada ator executar, devemos criar uma sequencia decomandos, arrastando blocos grficos e juntando-os em pilhas chamadas deScript. Basta um duplo clique em qualquer bloco para fazer rodar um script.

    PrticaVamos criar um script para mostrar como fcil produzir um resultado visvel.Selecionar a caixa Eventos e arrastar o bloco Quando clicar em bandeiraverde para a rea de edio. Selecionar a caixa Controle e arrastar o blocorepita 10 vezes para a rea de edio grudando-o no bloco anterior.Selecionar a caixa Movimento e arrastar o bloco Girar direita 15 grauspara a rea de edio colocando-o dentro do bloco anterior. O resultado finalser este:

    1 Em computao grfica, um sprite (do latim spiritus, que significa "duende", "fada") umobjeto grfico que se move numa tela sem deixar traos de sua passagem (como se fosseum "esprito") e foi inventado como um mtodo rpido de animao de vrias imagensagrupadas numa tela para jogos de computador.

    Fernando Anselmo Folha 3

  • Lgica de Programao para no programadores

    Pode-se adicionar um comando no meio do bloco de comandos, mas precisoter cautela pois, depois de inserido, j no sai ao pux-lo. Para o retirar, preciso puxar o que est debaixo e dividir o bloco em duas partes; depois que se puxa por ele (porque fica a ser o ltimo da primeira parte do bloco).Para mover uma pilha basta arrastar o bloco de cima. Arrastando um bloco domeio todos os de baixo so arrastados juntos. Para copiar uma pilha de blocos,de um ator para outro, basta arrast-la para a miniatura do outro ator nosbastidores.

    Exerccio 11.1. Fazer um ator se movimentar por todo o cenrio.1.2. Fazer o movimento parecer mais real trocando o traje do ator.1.3. Fazer o ator se movimentar at um ponto especfico do cenrio.1.4. Atente-se no bloco abaixo, o que este bloco produz?

    Dica: Para descobrir o que faz cada bloco basta clicar sobre ele com o boto direito do mouse e selecionar Ajuda no menu que aparece.

    A aparncia de um ator pode ser modificada pela sua apresentao em umtraje diferente. Qualquer imagem pode ser usada como um traje; pode-sedesenhar essa imagem no editor de Pintura, importar de uma lista ou baix-lade um site na internet. O Scratch reconhece os formatos de imagem: JPG,BMP, PNG, GIF (animado tambm). A ordem dos trajes pode ser modificadaarrastando-se as miniaturas. Clicar com o boto direito do mouse em umaminiatura de traje o transforma em um novo ator. Para realizar uma animao o efeito o mesmo princpio de uma imagem GIF,onde aparecem diferentes posies de um personagem e a troca das imagensdas posies produz a ideia de animao. Escolha o objeto que ser animado eclique em Trajes. possvel criar as diferentes posies do objeto desenhandoo novo a partir do inicial (fazer uma cpia do original e editar) ou importar asposies.Ao realizar movimentos, importante que o ator ao tocar na borda do palcovolte. Um exemplo disso pode ser uma bola que role, bate na borda e volte.Para fazer um ator falar. Para isto, basta usar o bloco de comando Diga. Nelepodemos determinar o que ser dito e o tempo que essa mensagemaparecer. Alm disso podemos utilizar sons, podem ser gravados novos sons

    Fernando Anselmo Folha 4

  • Lgica de Programao para no programadores

    ou importados de arquivos de som. Scratch pode ler arquivos MP3, WAV nozipados, AIF e AU (desde que no sejam de 24 bits).

    Trabalho com VariveisVarivel uma representao simblica de elementos de um certo conjunto.Cada varivel corresponde a uma posio de memria, cujo contedo pode sealterado ao longo do tempo durante a execuo de um programa. Embora umavarivel possa assumir diferentes valores, ela s pode armazenar um valor acada instante.Varivel um pedacinho de memria onde podemos guardar um valorqualquer, para ser usado nas operaes. J existem algumas variveis doScratch, como por exemplo as posies X e Y dos atores. possvel criar quaisquer tipo de variveis que necessitamos, abrindo o blocodas Variveis e clicando em Criar uma varivel. Basta dar um nome paraela e podemos utiliz-la para compormos nossos scripts.

    Exerccio 22.1. Receber um valor do usurio. Armazenar este valor na varivel

    resposta. Fazer o ator dizer o valor que foi armazenado.2.2. Fazer que o ator pea um nmero, e mostrar o dobro do nmero.2.3. Ler 2 nmeros e mostrar a soma deles na tela. Modificar para fazer

    outras operaes bsicas: multiplicar, dividir e subtrair.

    SensoresO Scratch tambm possui controles para o incio da execuo dos scripts. Umexemplo a Bandeira Verde que fica sobre a tela de visualizao dasprogramaes. Pode ser usada para iniciar o funcionamento de um script. Paraisso necessrio que seja colocado no script o bloco de controle que indica.Blocos de programao so conjuntos agrupados de instrues e declaraesque tm um escopo com uma ao definida. Existem diversos tipos de blocosque so organizados em delimitadores, de movimentao e condicionais.

    Os delimitadores so blocos exclusivamente usados para delimitar oincio e o trmino de um programa em blocos.

    Os de movimentao so os que possuem algum comando de ao parao ator.

    E, os condicionais so os que fazem a verificao de uma certa condiopara determinar se outros blocos a eles submetidos sero avaliados eexecutados ou se sero desconsiderados.

    Para iniciar um script, alm de usar a bandeira verde, possvel determinaruma tecla do teclado que funcione como disparadora do script. Desta forma,quando a tecla for pressionada, o script inicia sua execuo.Para determinar que o incio da execuo ser determinado por uma tecla, necessrio coloc-la no incio de um script o controle.

    Fernando Anselmo Folha 5

  • Lgica de Programao para no programadores

    PrticaAtente-se no bloco abaixo, que deve ser inserido para que este seja executadoquando clicarmos em do ator?

    DICA: Os comandos amarelos so blocos Controle (os roxos blocos deAparncia e os azuis blocos de Movimento).Na caixa Sensores existem ferramentas para avaliar quando um boto domouse ou uma tecla do teclado so pressionados. Mas esta ocasio tambm boa para usar mais uns comandos novos.

    Blocos de Deciso e RepetioPara muitas programaes, jogos e histrias importante usar testes.Podemos fazer uma bola bater em um objeto e quando ela bater, voltar. Mascomo ela vai saber que bateu? Como determinar o que acontece quando elabate.

    PrticaAtente-se ao bloco da prtica anterior, que deve ser inserido para que o gatomie sempre que uma determinada tecla seja pressionada.Como vimos, os comandos de um bloco so cumpridos pela ordem em que seencontram. Isso chamado Fluxo Linear, porque uma ao comea na pontade cima e termina na de baixo. Mas, por vezes, h necessidade de repetir umconjunto de instrues ou de optar entre dois conjuntos de blocos.

    Exerccio 33.1. Fazer com que um ator fale dez nmeros inteiros na sequencia a partir

    do 1.3.2. Pedir um nmero e mover em passos o ator para a esquerda e direita.3.3. Pedir um nmero e se este for par fazer o ator mover 10 passos para

    frente, caso seja mpar fazer o ator mover 10 passos para trs.3.4. Por 3 vezes fazer um ator ator tocar um instrumento qualquer a seguinte

    sequencia de notas por 0.2 batidas: 60, 61, 62 e 61.

    Fernando Anselmo Folha 6

  • Lgica de Programao para no programadores

    Criar msica no computadorNeste captulo, vamos usar o Sonic PI para entender como a diferena entreLaos e Servios, Sintetizadores e Samples, o que a programao em sub-blocos e os nmeros aleatrios.Sonic Pi um ambiente de programao de cdigo aberto, projetado para criarnovos sons com cdigo em um ambiente de codificao ao vivo; foidesenvolvido pelo Dr. Sam Aaron da Universidade de Cambridge.A interface do Sonic Pi possui trs reas principais. A maior delas paraescrever seu cdigo, chamado de Painel de Programao. No painel desada so mostradas as informaes de execuo do seu programa e comoest sendo executado. Ao clicar no boto de ajuda na parte superior da janela,o terceiro painel no fundo da janela visualizado, em forma de documentaode auxlio. Esta ltima rea contm vrias informaes sobre diferentescdigos que podemos utilizar, bem como modificar para produzir diferentessons de sintetizadores, samples, e muito mais.Na rea de programao utilize o comando:

    play 60

    Clique no cone de reproduo na parte superior da tela. O que acontece?Agora o que acontece se voc digitar pley 60 e clicar no cone de reproduo?

    Este um exemplo de um erro em seu cdigo. Nas atividades posteriores, se opainel de erro for exibido voc tem um erro que necessrio corrigir. Agora tentemos a seguinte sequencia:

    play 60play 67play 69

    Clique no cone de reproduo na parte superior da tela. O que acontece? Ocomputador est tocando cada nota em sequncia (uma aps a outra), masest acontecendo to rpido que soam como se estivessem tocando todas aomesmo tempo. Outra forma de tocarmos as notas e atravs de variveis prontas querepresentam seus nmeros, por exemplo:

    play :C4

    Isto pode ser representado pela seguinte tabela:

    Fernando Anselmo Folha 7

  • Lgica de Programao para no programadores

    Precisamos realizar uma pausa entre cada nota. Podemos fazer isso ao digitara seguinte depois de cada comando play:

    sleep 1

    O valor inserido aps a palavra sleep representa um tempo medido emsegundos. O que usaramos para representar meio segundo?

    Exerccio 44.1. A msica tema do jogo Super Mrio conseguida com a seguinte

    sequencia de notas: :E4, :E4, :E4, :C4, :E4, :G4, :G3, :C4, :G3, :E3,:A3, :B3, :As3, :A3, :G3, :E4, :G4, :A4, :F4, :G4, :E4, :C4, :D4 e :B3.Execute-as com o Sonic Pi.

    4.2. Produza uma msica conhecida.

    Diferena entre Laos e ServiosNo exemplo abaixo, podemos perceber que algumas linhas de cdigo estorecuadas. Isto torna mais fcil de ler o cdigo e verificar se existe algum erro.

    2.times do play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5 play 60 sleep 0.5end

    Fernando Anselmo Folha 8

  • Lgica de Programao para no programadores

    Laos notas por um determinado nmero de vezes extremamente til paraevitarmos excesso de linhas de cdigo. Mas se desejamos fazer um lao quedure para sempre?

    Podemos utilizar um bloco como este:

    loop do play 60 sleep 0.5end

    Este bloco s terminar quando interrompemos o programa. Mas para queserve isso? Qual a utilidade de usarmos laos infinitos?

    Antes de respondermos a essa questo, precisamos ver um outro modelo debloco infinito chamado live_loop. Ao tocarmos o bloco anterior epressionarmos vrias vezes o boto Executar (Run) o que acontece?Isso acontece porque o programa chamado novamente criando uma novaexecuo dos servios, ento vamos trocar para:

    live_loop :melodia do play 60 sleep 0.5end

    Agora pressione o boto Run e observe que no existe mais a sobreposio.Observe que este bloco possui um nome (neste caso :melodia), assim o SonicPi reconhece este e a cada vez que pressionamos o boto Run este sobreposto e no mais criado um novo bloco.

    PrticaBlocos live_loop so muito interessantes pois podemos alter-los em tempode execuo. Ou seja, pressione o boto Run modifique o valor da nota epressione novamente o boto Run.

    Sintetizadores e SamplesOutro detalhe interessante do Sonic Pi a quantidade de sintetizadores quepodemos trabalhar, por exemplo tente o seguinte cdigo:

    use_synth :fm2.times do play 60 sleep 0.5 play 67 sleep 0.5end

    Qual foi o som produzido?

    Fernando Anselmo Folha 9

  • Lgica de Programao para no programadores

    possvel no apenas criar msica com Sonic Pi usando notas simples,tambm pode-se criar msica com samples (amostras). Samples so sons oumsicas pr-gravadas que podemos adicionar para nossa composio musical.Esta uma maneira muito simples de fazer sua msica soar incrvel.

    2.times do sample :loop_amen sleep 1.753end

    H vrios tipos de samples j includos com Sonic Pi. Para encontrar os nomesdeles, clique na ajuda seguido de Samples no lado esquerdo da janela deajuda. Clique em qualquer um dos nomes de exemplo para obter maisinformaes sobre como us-lo.

    PrticaMsica possuem faixas de apoio que se repetem. At agora, brincamos comuma nica melodia. Vamos tentar usar duas msicas ao mesmo tempo!Clicar em uma nova aba buffer. Digite o seguinte trecho de cdigo:

    live_loop :laco1 do sample :loop_amen sleep 1.753end

    Este primeiro lao atuar como a base da msica. Aperte o boto Run e agoradigite a seguinte faixa de apoio:

    live_loop :laco2 do play 65 sleep 0.753 play 64 sleep 1end

    Agora aperta o boto Run novamente e devemos ouvir ambas as faixastocando ao mesmo tempo.

    Programando sub-blocosUma forma interessante em se trabalhar com programao a criao depequenos trechos de blocos para que possam ser executados organizadamentepor outro bloco principal. Sozinhos esses blocos so apenas partes de um todo,como por exemplo, sua mo ou sua perna.Para criar um sub-bloco digite os seguintes comandos:

    define :meuSynth do use_synth :prophet

    Fernando Anselmo Folha 10

  • Lgica de Programao para no programadores

    play 53, attack: 0.2, release: 1.3 sleep 0.5end

    O que acontece se pressionarmos o boto Run? Porque isso aconteceu?

    Para chamar este sub-bloco devemos criar um bloco principal:

    live_loop :meuBloco do play_my_synthend

    Agora o que acontece quando apertamos o boto Run? Porque isso aconteceu?

    A vantagem em se utilizar de sub-blocos que podemos deixar nosso cdigomais organizado dividindo um programa que teria muitas linhas e seria dedifcil manuteno em algo mais simples e bem organizado.

    Nmeros aleatriosSonic PI inclui vrias funes interessantes para compor peas musicais,porm um bom efeito tentar algo totalmente novo (inclusive inesperado),imagine que tem na mo uma caixa e nessa existem notas musicais,aleatoriamente selecionamos uma nota e devemos toc-la.Veja o seguinte cdigo:

    live_loop :seqLa do play chord(:a3, :minor).choose sleep 0.2end

    O acorde L Menor formado pelas notas 57 (:A3), 60 (:C4) e 64 (:E4), emcada passada do lao uma dessas notas escolhida (choose) e tocada.

    Agora vamos proceder uma outra modificao:

    live_loop :seqLa do play chord(:a3, :minor).choose sleep rrand(0, 1)end

    Agora alm de ser escolhida uma nota ao acaso o tempo de parada sertambm escolhido com um valor entre 0 e 1.

    Exerccio 5

    5.1. Sortear um nmero entre 1 e 10 (inteiro), tocar o resultado vezes aseguinte sequencia de notas: 53, parar por 0.9 segundos, 55 parar por0.3 segundos, 53 parar por 0.6 segundos e 50 parar por 1.8 segundos.

    Fernando Anselmo Folha 11

  • Lgica de Programao para no programadores

    Aprendizado ExtraPorque o aprendizado deve ser chato? Se divirta com o programa. Comece pordigitar cada um desses trechos de cdigo com o Sonic PI e veja o que elesproduzem.

    A. Batida Simples

    live_loop :ondrum do cue :ondrums sample :loop_amen, rate: 0.75 sleep sample_duration :loop_amen, rate: 0.75endlive_loop :guit do sync :ondrum sample :guit_e_fifths, rate: 0.6 sleep sample_duration :guit_e_fifthsend

    B. Drumminbeis

    live_loop :amen_break do use_bpm 80 with_fx :slicer, phase: 0.5, wave: 0, mix: 1 do sample :loop_amen, beat_stretch: 2, cutoff: 100 end sleep 2end

    C. Eletrnica

    use_bpm 60use_debug false

    live_loop :amen_break do p = [0.125, 0.25, 0.5].choose with_fx :slicer, phase: p, wave: 0, mix: rrand(0.7, 1), reps: 4 do r = [1, 1, 1, -1].choose sample :loop_amen, beat_stretch: 2, rate: r , amp: 2 sleep 2 endendlive_loop :bass_drum do sample :bd_haus, cutoff: 70, amp: 1.5 sleep 0.5end

    Fernando Anselmo Folha 12

  • Lgica de Programao para no programadores

    live_loop :landing do bass_line = (knit :e1, 3, [:c1, :c2].choose, 1) with_fx :slicer, phase: [0.25, 0.5].choose, invert_wave: 1, wave: 0 do s = synth :square, note: bass_line.tick, sustain: 4, cutoff: 60 control s, cutoff_slide: 4, cutoff: 120 end sleep 4end

    D. Disco

    use_bpm 80

    live_loop :beat do sample :bd_haus, amp: 2 sleep 1end

    hat_pattern = [9, 0, 5, 5, 0, 0, 5, 0, 9, 0, 5, 5, 0, 0, 9, 0]

    live_loop :hat do sync :beat hat_pattern.each do |p| sample :drum_cymbal_closed, amp: p/6.0, rate: (rrand(0,0.05)+0.5+(p/9.0)), start: rrand(0,0.05) sleep 0.25 endend

    sleep 8

    live_loop :drum do sync :beat sample :loop_industrial, beat_stretch: 1, rate: 1 sleep 2 # Mude para 1 no Refroend

    Modifique-os e gere sua prpria msica.

    Fernando Anselmo Folha 13

  • Lgica de Programao para no programadores

    Algoritmos estruturadosNeste captulo, vamos usar o VisuAlg para entender como funciona os fluxoslgicos de informao, tipos de dados, mais sobre os comandos de deciso erepetio e entrada e sada de dados.A linguagem de programao dizer como se escreve um algoritmo. O grandeproblema para muitos o que dizer para o computador fazer. Para oaprendizado foi desenvolvido o Software VisualG, que auxilia a programaototalmente em portugus.A tela do VisuAlg compe-se da barra de tarefas, do editor de textos (quetoma toda a sua metade superior), do quadro de variveis (no lado esquerdoda metade inferior), do simulador de sada (no correspondente lado direito) eda barra de status.O formato bsico de um programa o seguinte:

    algoritmo "semnome"// Funo :// Autor :// Data :var // Seo de Declaraesinicio // Seo de Comandosfimalgoritmo

    A primeira linha composta pela palavra-chave algoritmo seguida do seunome delimitado por aspas duplas. Este nome usado como ttulo nas janelasde leitura de dados, todas as informaes dispostas aqui so para fins dedocumentao. A seo que se segue a de declarao de variveis, iniciadacom a palavra-chave var e termina com na linha que contm a palavra-chaveinicio. Deste ponto em diante est a seo de comandos, que continua at alinha em que se encontre a palavra-chave fimalgoritmo. Esta ltima linhamarca o final do programa.

    Sugesto de Digitao

    Uma sugesto de digitao disponibilizada atravs das teclas Ctrl+J. Essacombinao de teclas far que o VisuAlg mostre uma lista com sugestes depalavras-chave que completam o que foi digitado. Para escolher, necessriodar um duplo clique sobre a opo desejada, ou ento selecion-la com assetas e pressionar Enter. Se o usurio continua escrevendo depois que oVisuAlg apresentou a lista de sugestes, o programa continuar procurandopalavras que ainda complementem o que foi digitado. Ao se teclar Esc ou clicar"fora da lista", esta desaparece.

    PrticaEste um exemplo de algoritmo, que tem como objetivo somar 3 nmerosinteiros:

    Fernando Anselmo Folha 14

  • Lgica de Programao para no programadores

    algoritmo "soma"var num1, num2, num3, resultado: inteiroinicio escreval("Pograma para somar 3 nmeros inteiros a escolha:") escreval("Digite um numero:") leia(num1) escreval("Digite um numero:") leia(num2) escreval("Digite um numero:") leia(num3) resultado

  • Lgica de Programao para no programadores

    a: inteiro valor: real vet: vetor [1..10] de real matriz: vetor [0..4,8..10] de inteiro nome: caractere professor: logicoinicio ...fimalgoritmo

    Para atribuirmos o valor a uma varivel usamos o sinal

  • Lgica de Programao para no programadores

    fimse

    Ao encontrar este comando, o compilador analisa a . Se oresultado for VERDADEIRO, ento todos os comandos da soexecutados. Se o resultado for FALSO, o algoritmo passa a ser executado apartir da linha depois do senao, e todos os comandos da soexecutados.

    Exerccio 6

    6.1. Elaborar um programa que leia um nmero. Se positivo armazene-o emA, se for negativo, em B. No final mostrar o resultado.

    6.2. Elaborar um programa que leia uma varivel numrica e mostr-lasomente se seu valor for maior que 100, caso contrrio mostr-la com ovalor zero.

    6.3. Calcular a mdia final de um aluno, considerando que este realizarquatro provas: P1, P2, P3 e P4.

    Estruturas de RepetioO VisuAlg implementa as trs estruturas de repetio usuais nas linguagens deprogramao.

    A. Lao determinado: para...ate...faca

    Este comando repete uma sequncia de comandos um determinado nmero devezes. Possui a seguinte sintaxe:

    para de ate [passo ] faca fimpara

    Onde:

    a varivel contadora que controla o nmero de repetiesdo lao. Na verso atual, deve ser necessariamente uma varivel do tipointeiro, como todas as expresses deste comando.

    uma expresso que especifica o valor de inicializao davarivel contadora antes da primeira repetio do lao.

    uma expresso que especifica o valor mximo que avarivel contadora pode alcanar.

    opcional. Quando presente, precedida pela palavrapasso, uma expresso que especifica o incremento que seracrescentado varivel contadora em cada repetio do lao. Quandoesta opo no utilizada, o valor padro de 1.

    Fernando Anselmo Folha 17

  • Lgica de Programao para no programadores

    No exemplo a seguir, os nmeros de 1 a 10 so exibidos em ordem crescente.

    algoritmo "Nmeros de 1 a 10"var j: inteiroinicio para j de 1 ate 10 faca escreva (j:3) fimparafimalgoritmo

    B. Lao indeterminado: enquanto...faca

    Este comando repete uma sequncia de comandos enquanto uma determinadacondio for satisfeita. Possui a seguinte sintaxe:

    enquanto faca fimenquanto

    Onde:

    Esta expresso que avaliada antes de cadarepetio do lao. Enquanto seu resultado for VERDADEIRO a executada.

    O mesmo exemplo anterior pode ser resolvido com esta estrutura derepetio:

    algoritmo "Nmeros de 1 a 10 (com enquanto...faca)"var j: inteiroinicio j

  • Lgica de Programao para no programadores

    Onde:

    Inicialmente executa a caso o valor da for VERDADEIRO executa novamente a caso contrrio encerra o lao.

    Consideraremos ainda o mesmo exemplo:

    algoritmo "Nmeros de 1 a 10 (com repita)"var j: inteiroinicio j

  • Lgica de Programao para no programadores

    Simbologia da LgicaEsta a simbologia comum a todos os programas que tratam sobre lgica.

    Operadores AritmticosSo os utilizados para obter resultados numricos. Os smbolos para essesoperadores so:

    Simbolo Operao+ Adio

    - Subtrao

    * Multiplicao

    / Diviso

    Prioridade dos operadores aritmticos:

    1) resolvido o que estiver entre ( ) Parnteses.

    2) resolvido entre a multiplicao ou a diviso (o que aparecer primeiro naordem da esquerda para direita).

    3) resolvido entre a adio ou a subtrao (o que aparecer primeiro naordem da esquerda para direita).

    Por exemplo: a seguinte operao aritmtica: 3 + 4 * 0 + 2, resulta no valor5.

    Algumas linguagens apresentam o operador % que significa o resto de umadiviso. Por exemplo: 10 % 3 = 1; 10 % 4 = 2

    Operadores RelacionaisOs operadores relacionais so utilizados para comparar valores numricos.Estes operadores sempre retornam valores lgicos (Verdadeiro ou Falso)

    Simbolo Operao= Igual a

    > Maior que

    < Menor que

    >= Maior ou igual a

  • Lgica de Programao para no programadores

    A = B: Falso A > B: Verdadeiro A < B: FalsoA >= B: Verdadeiro A C): Falso (A > B) OU (B < C): Falso

    (A < B) E (B > C): Verdadeiro (A < B) OU (B > C): Verdadeiro

    (A C): Verdadeiro (A >= B) OU (B >= C): Verdadeiro

    Exerccio 8

    8.1. Considere as variveis SALARIO conforme os valores abaixo, IR querepresenta o valor de 10% do salrio e SALLIQ que obtido dasubtrao de SALARIO por IR. Informe se as expresses so verdadeirasou falsas.

    SALARIO Expresso100,00 (SALLIQ >= 100,00)

    200,00 (SALLIQ B

    2. B >= (A + 2)

    3. C = (B A)

    4. (B + A) B

    Fernando Anselmo Folha 21

  • Lgica de Programao para no programadores

    8.3. Sabendo que A = 5, B = A - 1 e C = B - A e D = B / A, informe se asexpresses abaixo so verdadeiras ou falsas.

    1. (A > C) AND (C 10 OR (A+B) = (C+D)

    3. (A>=C) AND (D >= C)

    Fernando Anselmo Folha 22

    IntroduoOs blocos de programaoMovimento e Interao com AtoresTrabalho com VariveisSensoresBlocos de Deciso e RepetioCriar msica no computadorDiferena entre Laos e ServiosSintetizadores e SamplesProgramando sub-blocosNmeros aleatriosA. Batida SimplesB. DrumminbeisC. EletrnicaD. DiscoAlgoritmos estruturadosTipos de DadosEstrutura de DecisoEstruturas de RepetioSimbologia da LgicaOperadores AritmticosOperadores RelacionaisConcatenadores Lgicos