[Música] olá pessoal tudo bem sou professor ronaldo nosso tema de hoje dá aulas sobre o algoritmo e lógica de programação bem o que é o algoritmo algoritmo conjunto de instruções e procedimentos lógicos para a solução de um problema ou execução de uma tarefa lembrando que esse algoritmo ele pode ser executado no computador uma máquina ou também ele pode ser executado né sem o auxílio do computador por um humano lembrando que a formulação de um problema é um algoritmo ele passa pelo processo de decomposição reconhecimento de padrões e abstração que são os pilares do pensamento computacional
bem com um algoritmo ele pode ser inscrito em vários formatos né ele pode ser inscrito por meio de um diagrama nós chamamos aqui de fluxograma do número ando aqui como um néon pseudo o código java numerar aqui como 2 ou uma linguagem de programação como 3 e também nós temos aqui é a programação em blocos né eu vou enumerar como quarto aqui a programação em bloco nós vamos usar bastante posteriormente usando o software flash mas eu posso representar esse conjunto de instruções dessas quatro maneiras aqui ok quando a gente diz que um algoritmo resolve o
problema primeira pergunta o que é um problema né nenhum problema é um tema ou uma questão em qualquer área de conhecimento é importante estar cá isso não é porque nós vamos resolver problemas somente para a computação ou seja quando eu digo a gente trabalhar com computação para a computação não a computação ela também uma atividade meio você vai trabalhar com computação para as outras áreas então o problema é um tema uma questão nem de qualquer área do conhecimento cuja solução resposta é você não tem ela de imediato sempre fazer o quê uma pesquisa um estudo
uma reflexão com grande esforço para que você possa solucionar esse problema ok e vários desses problemas que todos fazem parte dos dois nosso cotidiano é preciso um problema esse problema pertence a alguém e com isso nós somos o que buscar o procedimento para a solução desses problemas porque eu tenho aqui né uma interrogação qual é o problema é preciso máquina a pensar muito para que depois o encontro que a solução para esse problema nós vamos começar falando aqui no problema bastante simples quer trocar uma lâmpada né fala pô la plata queimado trocar uma lâmpada como
é que resolve esse problema né aqui tenho a uma sequência chama aqui de instruções né que a gente lembra no momento quem precisa trocar uma lâmpada que é o que a primeira coisa é ampla a fota tem que pegar uma escada depois eu tenho posicionar essa escada embaixo da lâmpada depois eu tenho que fazer o que pegar a lâmpada nova aí eu vou subir a escada né retirar a lâmpada está queimada lâmpada antiga e colocar essa lâmpada nova vem lembrando o seguinte quando a gente pensa nem resolver um problema de troca de lâmpada bastante simples
né nós não estamos usando o computador para fazer isso você está executando isso lembrando que o computador ele só vai fazer o quê aquilo que realmente você estiver programando e instruindo para que ele faça por isso que o algoritmo uma seqüência de instrução uma seqüência de passos então senti foi olhar essa seqüência de passos aqui ela está bastante simples porém nem eu tenho que pensar o seguinte que em alguns casos para trocar uma lâmpada eu tenho que fazer alguns testes muitas vezes eu tenho a pessoa falar quem mo lâmpada do meu quarto qual se eu
não sei qual é a lâmpada queimou tem que antes e testar ou seja pode acionar o interruptor para verificar se aquela lâmpada acende ou não se ela não acender significa que ela está o que queimada então nesse momento aqui quando eu faço essa pergunta aqui né se a lâmpada acendeu não eu já estou colocando determinada condição seja a o algoritmo é uma seqüência de passos só que essa sequência ela pode ser seguida de acordo com determinada condição né no acordo com uma lógica que a gente vai aprender posteriormente e se essa lâmpada acende ela está
o que queimado aí sim eu sigo as instruções básicas que já tinha comentado porém eu posso lá colocar uma lâmina testar novamente salão para não acender eu tenho que olhar pode ser que eu estou colocando nova está queimada ou se não pode ser um outro problema mas aí eu vou ter que ficar fazendo isso até que eu lembro da cena e aí sim eu termino é resolver os problemas do time trocar lâmpada igual à da escada ou seja ter uma sequência de instruções para resolver um problema bastante simples que é no caso a troca de
uma lâmpada bem outro exemplo simples nosso cotidiano aqui né ir para a escola nessa eu vou pensar em criar uma sequência de instruções desde a hora que o acordo não é como eu pego um vôo para a escola eu a criança eu falo que é um problema realmente porque eu tenho filho em casa e eu sei como é difícil acordar ele sendo pra escola então isso aqui eu quase que um problema complexo para alguns porque é que no momento que a pessoa acorda ele tem que acordar não basta apenas abrir os olhos têm que abrir
os olhos e ir ao banheiro na primeira hora de acordar sem se levantar depois e vai ao banheiro lavar o rosto escovar os dentes abre o armário escolhe uma roupa ou seja não vou detalhar mas se tem toda uma seqüência de passos aqui mas porque nós estamos mostrando o problema simples assim a ser resolvido porque é problema simplesmente têm soluções fáceis branco a gente pensa em problemas um pouco mais complexo nesse caso específico aqui desse problema que é apresentado o que fazer com que uma pessoa possa atravessar o rio qual é o problema específica que
de atravessar o rio não é apenas a que pegar um barco e atravessar não esse problema que significa o seguinte um homem precisa atravessar um rio em um barco esse barco ele possui capacidade para transportar ele e mais somente é uma de suas três cargas já então ele tem três cargas que seria o lobo é um bode e uma caixa de alfafa certo então que acontece nesse problema e é pensar na solução pra ele o problema é que para transportar se eu consigo transportar somente ele mesmo e mais uma das cargas né lembrando o seguinte
se eu deixo o bode né e junto com lobo lobo é comer bode se eu deixo board junto com a alfa o bode como eu faço então nesse caso é que eu tenho que pensar numa solução como eu posso fazer o que transportar né no barco a pessoa no caso essa é a pessoa mais uma das suas cargas sentença que como resolvo isso então começa a perceber quem temos problemas são um pouco mais complexos né esse problema específico vocês vão ter a solução lá no alvo depois ok bem agora que o problema um pouco mais
complexo é um problema clássico na área de computação especificamente na área de grafos né que é o problema da ponte cecconi's berg hancock esse problema é nessa cidade cones mec tem uma ilha né e nessa ilha existem sete pontes que cruzam as ruas que chegam até essa ilha e as pessoas da cidade ficavam discutindo será que é possível né eu fazer uma caminhada continua única sem passar duas vezes nep por qualquer uma das pontes eu quero passar somente em uma das pontes bem esse problema foi resolvido por euller né usando uma estrutura de dados chamado
grafos né e assim houve toda uma especificação para a resolução desse problema não é um problema tão simples mas ele foi resolvido e realmente descobriu que não tem como você passar nesse caso aqui porque você precisaria ter duas pontes né entre os pontos no caso no momento que ele mapeou o seu gráfico e transformou é criando as arestas e identificou que você faria tem duas áreas é por cada um dos vértices isso infelizmente não acontece então não tem como você fazer essa caminhada passando uma única vez por cada bote bem lembrando que o algoritmo 1
a 5 uma seqüência de instrução lógica pergunta então que é lógico né lógica utilizada para resolver problema né é baseado de maneira lógica ou seja um problema ele precisa ser resolvido de maneira lógica para isso a loja que ela trata da correção do pensamento ou seja ela faz distinção entre o raciocínio é válido o raciocínio que não é válido ok isso significa que a lógica é a arte do bem pensar é a ciência que trata das formas o pensamento em termos de racionalidade e coerência né e existem três partes fundamentais da lógica loja que nós
estamos baseando aqui a lógica matemática que é a proposição nec afirma o que algo é verdadeiro ou algo que é falso então essa é a proposição são frases que afirmam alguma coisa né já as premissas são as proposições frases afirmativas ou seja que se usa para provar alguma coisa para defender alguma idéia significa então que você tem a conclusão porque a conclusão é problema a proposição que é obrigatória ok bem um exemplo aqui de lógica né esse que todo mamífero é um animal isso é uma premissa que a gente tentou fazer uma afirmação afirmando também
que todo o cavalo é mamífero então portanto eu posso dizer que todo o cavalo animal porque eu estou afirmando que o mamífero é um animal e que o cavalo também o mamífero ok mas se eu perguntar se eu afirmar que o crocodilo é um animal eu não consigo afirmar que o crocodilo ele é um mamífero outro exemplo aqui é bastante simples é iso é mais velho que murilo se a minha premissa é uma afirmação além disso afirmou também que murillo é mais velho que henrique com isso consigo concluir que enzo é mais velho que o
henrique então essa é a lógica é que nós estamos utilizando e vamos utilizar bem além da lógica básica eu tenho que me chama de lógica de programação a lógica de programação é uma técnica que vai encarar de ar pensamentos para atingir determinado objetivo né permite definir o que é uma seqüência lógica para a solução os meus problemas porque eu vou mostrando aqui há pouco mas não adianta ter uma seqüência de passos não ordenados estão a seqüência de nada e lógica ok essa seqüência lógica né são passos executados até atingir o objetivo ou a solução do
problema você tem que especificar exatamente qual essa seqüência lógica lembrando que os pensamentos são descritos como uma sequência de instruções que devem ser seguidas para cumprir uma determinada tarefa é essa é essa instrução possa apresentar aqui dizendo o seguinte essa seqüência lógica na verdade é ela é bem definida aqui nesse exemplo quando eu digo a gaveta está fechada ea caneta está dentro da gaveta para poder pegar a minha caneta que eu tenho que fazer primeiro tem que abrir a gaveta para depois pegar a caneta então apesar de ontem passos bem definidos eu tenho que seguir
uma ordem lógica ok bem e essa seqüência de nada de páscoa chamei agora pouco de ordem lógica né deve ser seguida para a realização da tarefa se não seguir essa ordem lógica eu não consigo a execução das tarefas isso vai acontecer muito nem todo algoritmo baseado nessa sequência lógica bem como disse o algoritmo uma sequência de instruções ou procedimentos lógicos essas instruções são os passos nem a serem executados são as ações ou conjunto de regras a serem executados ok eo programa essa ação é elementar é uma ação que vai ser executado momento que a gente
colocar uma instrução por exemplo escolhe os dentes né o que é escovar os dentes é uma ação eu tenho que de alguma maneira de escrever essa ação no meu guri timo é importante ressaltar aqui que a execução isolada de uma determinação não resolve o problema como um todo é você tem que executar ou todas as instruções néel claro isso vai depender se tudo a execução seqüencial desse espaço se houver alguma estrutura condicional pode ser que ele execute parte daquele passo oc6 alguns é um exemplo bastante interessante de instruções aqui é a tarefa de fazer um
omelete só nós sabemos todos os passos para fazer uma omelete eu sei que eu tenho que uma instrução quebrar ovos lateral novos adicionais ao acender o fogo colocar é óleo na frigideira e tudo mais porém sem pensar o seguinte se eu tiver trabalha com instruções isolados não tem resultado efetivo é de fazer um omelete então não adianta só quebrar os ovos ou só colocar o som o óleo na frigideira isso não é suficiente eu preciso seguir uma ordem uma sequência lógica para poder fazer isso primeiro não adianta querer fritar ovos e ainda não quebrar os
ovos a primeira tem quebrar o ovo depois fritar ovo e assim por diante não existe uma sequência lógica para resolver esse problema ok bem se o algoritmo é uma sequência de instruções lógicas né no momento que eu quero colocar essas instruções para que o meu computador possa resolver determinada tarefa eu preciso qualificar preciso escrever em seu algoritmo em uma determinada linguagem de programação na qual o computador consegue entender né e poder executar esse meu é algoritmo ok e uma linguagem ela pode ser escrita é por um conjunto de instruções e cada linguagem tem a sua
sintáxi específico então às vezes eu vou escrever o meu código não determinada linguagem de programação é importante destacar que existem várias linguagens de programação aqui nessa figura estou mostrando a linguagem c java php python javascript c++ fechar várias linguagens de programação está disponível hoje para utilizar e claro que isso vai depender de cada aplicação software que você vai querer desenvolver mais importante destacar que cada linguagem tem a sua sintáxi específica ok e regras específicas inclusive ambiente momento específico para cada uma delas ok aqui eu mostro um exemplo de código-fonte do a linguagem python um exemplo
simples aqui pra implementar uma função para calcular o fator yao de um número não vou entrar em detalhes aqui com relação o código aqui bem então nós já falamos de algoritmos que uma seca instruções falamos em linguagem de programação que é uma linguagem utilizada para você escrever esse algoritmo para poder executar no computador e no momento que você escreve uma sequência de instruções em uma determinada linguagem de programação e você passa a executar cinco instituições você tem o seu programa de computador do seu software efetivamente ok então eu dou alguns exemplos de software ou ate
zap facebook coloquei um software bem interessante que eu só vi da receita que o pessoal entra anualmente para fazer o seu imposto de renda então tem vários softwares que não vou ficar falando um por um mas é importante vocês saberem que é o software o resultado da qualificação de uma sequência de instruções uma determinada em linguagem de programação né lembrando que um software pode ser desenvolvido para ser executado no computador um dispositivo móvel que seria no celular ou qualquer outro equipamento tem muito longe chamado de softwares embarcados né porque existem softwares hoje sendo executado no
carro então é a linguagem o software que você vai desenvolver dependendo de onde você quer executar você vai ter uma linguagem de programação específica o mesmo software é desenvolvido por um computador provavelmente não pode né é como um aplicativo no celular dependendo dos da linguagem é bom deixar isso bem claro pra vocês ok bem só voltando aqui um pouquinho por exemplo decodificação e muitas vezes o pessoal que não é da área de computação diz olha eu olho pra esses códigos não entendo nada a gente sabe disso o objetivo nosso inclusive na disciplina que não é
ensinar nenhuma linguagem de programação né especificamente não falar de ambientes que vão auxiliar no desenvolvimento de algoritmos mas sem se preocupar com o sintáxi de linguagens nós vamos lá ferramentas para ensino de computação de programação ok bem existem várias maneiras a gente pode representar os algoritmos né esse podem ser representados por descrição narrativas até mostrei no início da aula de hoje alguma descrição de como trocar a lâmpada aquela seqüência de passos é uma descrição narrativa é por pseudo o código diferente um pouco da descrição narrativo pseudo código seja consegue é ter uma sintaxe né mais
clara de dessa seqüência de passos a ser executados e odin o fluxograma que eu mostrei também é ele é representado por diagramas ou a programação em blocos que a gente vai aprender também junto com os clientes fiquem bem na próxima aula eu vou falar pra vocês justamente sobre essa representação dos nossos algoritmos ok logo [Música] o [Música] [Música]