Pensamento Computacional - Representação dos Algoritmos

44.25k views3192 WordsCopy TextShare
UNIVESP
Disciplina: Engenharia de Computação Univesp - Universidade Virtual do Estado de São Paulo Profess...
Video Transcript:
e aí o olá pessoal tudo bem dando continuidade na nossa aula de algoritmos né nós vamos falar sobre a representação dos algoritmos na aula anterior eu falei sobre os conceitos de algoritmo conceitos de linguagens de programação conceitos de programas né e orgãos falar justamente como eu posso representar os meus algoritmos a terra tinha comentado na aula anterior né mas reforçando o agora que pode representar por meio de uma descrição narrativa no pseudocódigo ou para o fluxograma ou diagrama de blocos então que seria descrição narrativa né na descrição narrativa os algoritmos são expressos em uma linguagem
mais natural chama de uma linguagem é usual do nosso dia a dia qual o problema de você trabalhar com a descrição narrativa né pode causar o quê ambiguidades ou imprecisões porque muitas vezes como a gente vai usar a nossa linguagem natural muitas vezes cada um pode falar de uma maneira diferente aquilo que ele tá pensando e isso pode influenciar diretamente na execução e é nesse espaço para resolução no problema o exemplo bem simples aqui descrição narrativa ela livro de receitas né quem já não pega um livro de receita para poder fazer uma determinada comida né
e com isso você vai seguir o que não receitas uma sequência de passam e ele está descrito de maneira bastante informal né aquele exemplo que eu já tinha comentado de trocar a lâmpada né é fazer uma descrição narrativa do justamente na maneira que eu já tinha mostrado anteriormente é uma linguagem bem simples mesmo como já disse né às vezes pode causar ambiguidade de sentido de que que é pegar a escada né primeiro será que eu tenho que saber pegar onde eu vou pegar como né então se eu não tiver uma instrução clara isso fica fazendo
difícil de entender né outro exemplo descrição narrativa aqui seria o cálculo da média das provas estão se eu quero calcular a média das provas de um determinado aluno eu tenho primeira coisa obter as notas da é né desse aluno depois eu vou calcular a média das provas né se a média for maior que 7 eu sei que meu aluno vai estar aprovado caso contrário ou senão o meu aluno vai estar reprovado então isso daqui é uma descrição narrativa para efetuar o cálculo da média das provas ok bem é uma atividade um pouco mais complexa né
seria a descrição narrativa para trocar o pneu furado de um carro sem pensar que quem será que já trocou o pneu do carro né é como é que eu faço para trocar o pneu de um carro tá essa atividade aqui eu não tenho a resposta dela aqui posso até vou deixar disponível no ava depois mas eu gostaria de vocês pensar se o seguinte é um problema não tão simples né mas é conhecido por todos como é que eu faço se eu quisesse elaborando descrição narrativa primeira coisa quando o pneu do carro fura e eu vou
resolver arrumar o pneu do carro tem que ir lá abrir o meu pai e o carro né para pegar meu kit que seria pegar o que o step a a chave de roda o triângulo na qual eu tenho que pegar o triângulo colocar lá na frente do carro atrás depende a localização onde vai estar no seu carro né e depois atende identificar o que qual o pneu do carro está furado e a partir daí eu tenho que ir lá com a criar o carro tirar a partir do momento que eu fiz isso eu tenho que
ir lá e soltar as porcas da roda a gente dá a roda colocar o nome steps existe toda uma sequência de par lembrando o que o computador e só executa as instruções previstas né é mais ou menos como se você fosse programar um robô robô vai fazer aquilo que você tá programando se eu tô pensando em uma sequência de passos para que o roubou possa trocar o pneu se você não coloca para ele saber qual o pneu está furado qual o pneu que ele vai escolher para trocar então eu tenho que ter essa cê conhece
passa então eu gostaria que você pensasse nessa ative e antes de olhar a resolução que está lá no ava ok uma outra atividade aqui a gente tem que pensar eu não vou detalhar muito aqui na descrição narrativo mas depois no algoritmo a gente pode pensar um pouco melhor juntos né nesse caso seria para você fazer um saque né em dinheiro é claro que vai fazer o saquinho de vai ser dinheiro no banco 24 horas nós estamos pensando aqui em como a máquina vai fazer isso né porque quando você chega lá no banco você vai inserir
o seu cartão né o algoritmo tem que identificar a partir daquele cartão qual é o seu banco né porque como aqui no banco 24 horas eu tenho várias vários bancos né eu tenho que identificar qual só o banco para ir sim pedir o que o seu acesso né a sua senha para ele poder fazer conexão com esse banco para ir sim ele pediu o valor que você vai estar car né e verifica depois claro que você tem sal não mas ele em toda essa sequência de passos para que essa essa atualização ocorra para que essa
tarefa ocorra então eu gostaria que vocês pensarem também nessa atividade ok bem já o pseudocódigo que se difere na descrição narrativa porque ele ainda não é uma linguagem de programação você já não tem uma syntax específica numa determinada linguagem mas ele já tem uma semântica né tendo uma semântica de como você descrever o seu pseudocódigo né ele fica mais livres de erros no sentido de fazer ambiguidades ok é nesse caso específico ele não ser uma linguagem mas por que que ele semelhante justamente porque ele já tem uma sim táxi né o pseudocódigo ele é conhecido
também como o português estruturado ou portugol tá porque você continue escrevendo ele numa linguagem próximo na natural né mas eu tenho o que é normalmente é que existe uma semântica também uma sim táxi né para escrever onde as instruções são escritas em maiúsculas variáveis e minúsculas e as mensagens e maiúsculo mas isso aqui não há regra que tem que ser seguido ok vem qual é a vantagem do pseudocódigo à vontade pseudocódigo que ele continua usando a nossa linguagem natural português né ele tem essa semântica que eu já falei e existe uma passagem quase imediata do
algoritmo para uma linguagem de programação que se você descrever o seu algoritmo em pseudocódigo eu já está muito próximo de uma linguagem de programação que você pretende codificar a desvantagem né que exige a definição de uma linguagem não real pelo trabalho você vai ter que acabar definindo né é pente os grupos de pessoas que vão tá escrevendo os códigos qual seria a sua sintáxi ok por quê porque não tem um padrão específico também não é uma o impacto específica para pseudocódigos é bem existe uma regra básica não é a pesar no trânsito táxi que é
o seguinte você vai usar somente verbos é um verbo por frase né e sempre usando no imperativo além disso aí deus as sentenças fáceis de serem entendidas por pessoas leigas no assunto né usar frases simples e curtas sem direto e objetivo e além disso usar palavras que não tenham sentido núcleo você tem você tem que acabar criando quase uma semântica é uma syntax específica para o seu pseudocódigo né aproveita para diferenciar aqui sim táxi de semântica né porque assim táxi justamente nesse exemplo que eu tô colocando aquele pseudocódigo né é assim taxi você tem que
seguir algumas instruções para que você possa escrever é isso assim tá que semântica que você pode estar escrevendo alguma coisa na sintáxi certa mas não tá fazendo aquilo que você esperava essa diferença assim táxi bom então nesse caso aqui eu tenho inicialmente o nome do meu programa então coloque lá programa e o nome para esse algoritmo né nós estamos escrevendo o algoritmo né as variáveis que fazem parte do algoritmo depois nós vamos explicar melhor que são variáveis né e dentro do início fim aqui eu tenho todas as instruções que vão ser executado o passo a
passo dentro desse meu pseudocódigo aqui um exemplo aqui então de pseudocódigo é o cálculo da média então estou colocando aqui programa calcular média o nome daquele programa né eu tenho meu início e aí eu não declarei nenhuma variado aqui apesar de estar fazendo a leitura de variáveis eu acabei não colocando deveria colocar né mas eu tenho aqui então a primeira instrução aqui ó lembrando que o meu algoritmo é uma sequência de instruções primeira instrução já que preocupou de calcular a média e ver quais são as notas eu tenho que entregar e fazer a leitura dessas
notas então eu tô solicitando informando para que a pessoa informe a nota em gente anota aí eu faço a leitura né dessa nossa leitura é uma entrada de dados que vai ser feita pelo usuário a gente vai aprender também posteriormente mas a pessoa pode entrar lá com o valor da nota um depois ele vai informar nota 2 e depois disso eu vou fazer uma instrução que é calcular a média a média da nota é o que a soma das duas notas de por dois lembrando que nesse caso tem exatamente somente duas notas oi e aí
eu vou saber se eu quero saber se esse aluno está reprovado não eu posso ter uma instrução condicional vocês função condicional é no caso você se a média for maior que será que significa que ele tá aprovado se não está reprovado então isso aqui é um pseudocódigo ok bem esse aqui é o outro pseudocódigo o exemplo daquele de trocar a lâmpada né aqui eu já estou declarando as variáveis por isso que tem que levar nome das variáveis né esse aqui é aquele exemplo contest então para eu trocar lâmpada eu quero saber se a lâmpada está
queimada ou não nesse caso específico né é como é que eu vou saber se a lâmpada está queimada ou não eu tô fazendo com uma pergunta para ele apertar interruptor aperte o tempo todo aqui eu tô atribuindo o resultado disso para uma lâmpada resultado do que nós ionamento de interruptor né eu posso tempo um algum sensor que identifica isso mas nesse meu guri é bastante cinco eu quero saber por exemplo um lâmpada tá normal 0 a lâmpada está queimada tô falando para te ver boa funcionamento está normal não fazer nada caso contrário aí sim que
eu tenho que fazer o quê que minha troca da lâmpada ok também não vamos detalhar aqui e o outro exemplo aqui no pseudocódigo é para a compra da passagem de ônibus então para gente comprar passagem de ônibus pela idade da pessoa eu tenho preço diferente fazendo idosos não pagam aí vocês podem olhar esse exemplo depois da passagem de ônibus e mais detalhes bem as duas atividades que eu tinha pedido para vocês pensarem na descrição narrativa eu repito agora também aqui para vocês para vocês poderem elaborar o pseudocódigo tanto da atividade né de trocar o pneu
furado quanto a atividade também destacaram dinheiro do banco 24 horas né você gente vai colocar agora uma semântica uma sim táxi e naquela de ficção narrativa que já tinha pensado anteriormente ok bem o fluxograma ou também conhecido como diagrama né diagrama de blocos é uma outra maneira a gente poder representar algoritmos né é essa representação é realizada e como o próprio nome diz por diagramas né e são diagramas baseado em apresentações gráficas onde cada símbolo né ou vão chamar sim de forma geométrica tem é que representa né tem uma uma instrução e representa uma determinada
ação tá é o fluxograma é importante porque interessante porque ele é bastante fácil né de entender devido a sua representatividade ok e além disso eu posso quebrar meu fluxograma em várias etapas e com isso também facilita melhor a codifi cação das instruções ok bem o flu e ele possui sintáxi semântica bem definido sim taxi por quê porque a corresponde ao emprego correto dos seus elementos ou seja tem que saber exatamente quando eu uso é cada uma cada um dos meus diagramas e na semântica quando eu tô montando meu diagrama eu tenho que ver se realmente
aquilo tá correspondendo ao que eu esperava que acontecesse você se existe alguma correspondência do significado com os símbolos que eu estou utilizando ok bem é importante destacar também que existe apenas uma linha de fluxo que deve partir ou chegar a um determinado o conector vou mostrar daqui a pouco conector e cada ação passo né deve ser descrita de forma clara né sem ambiguidade tão exemplo aqui é importante mostrar quais são os símbolos né eu tenho símbolo que identifica o início do meu fluxograma tá ou o início ou fim o cento e o início do terminador
que seria o fim né o símbolo que seria certo onde eu faço o processamento tá lembrando que o processamento seria uma ação né eu tenho aqui o símbolo que representa a entrada de dados uma estrutura condicional é que seria uma estrutura condicional que ela descia média mark 7 então o aluno tá aprovado se não está reprovado esse uma estrutura condicional uma estrutura de saída quando eu quero imprimir mostrar alguma coisa ou um conector que eu posso estar ligando mais um fluxo ok bem o fluxograma ele permite três ordens ordens distintas de execução a primeira ordem
a ordem sequencial onde as atividades são executadas uma após a outra esse exemplo aqui na onde eu tenho o início e término é e não existe nenhuma alteração na ordem de processamento nessas as e executadas o passo 1 né depois o passo 2 é assim por diante até eu passo ele não existe nenhuma alteração nessa ordem né já a execução por seleção né ela ocorre né quando uma determinada a vídeo processamento é escolhido ou seja é quando na sequência de passos eu tenho uma instrução lógica no caso condicional e dependendo do resultado dessa condição né
se for verdadeira eu posso vir para cá se for falsa eu posso seguir esse essa outra sequência de passos então dependendo do valor né de uma expressão lógica aqui no caso né eu vou realizar uma determinada ação ok e uma outra é por repetição execução por repetição significa que a sequência de passos ela pode ser executada a repetitivamente enquanto uma determinada condição a cadeira que eu tenho duas maneiras representar isso no fluxograma nós chamamos de teste de cauda teste de cauda culpa e teste a cabeça qual que é a diferença dos dois nesse fluxograma aqui
eu tenho meu início uma determinada condição casa essa condição for verdadeira é o executa uma ação né e após a execução da estação eu continuo repetindo repetindo certo e testando essa condição enquanto essa condição for verdadeira eu fico nós chamamos de loop né e por que que ateste a cabeça porque só continue look caso a condição for verdadeira ou seja primeiro eu testei a condição e depois eu recortei já o teste a calda a diferença que eu tenho uma ação depois dessa são eu verifique a condição se esta condição for verdadeira eu continuo e vou
executar essa ação se ela e eu saio então eu diferença cabeça eu primeiro verifique a condição depois eu executo acalma eu executo depois eu verifico a condição mas interessante que o meu fluxo fica repetindo ok dois exemplos aqui teste a cabeça nesses dois fluxogramas o primeiro eu tenho aqui para poder verificar o seguinte eu quero pegar um pacote de biscoito né eu quero saber se tem biscoito ou não né então eu venho aqui pego um pacote abrir esse pacote se tiver biscoito eu vou pegar um biscoito comer um biscoito e vou comer um biscoito esse
pacote quando tiver biscoito hora que não tiver amanhã biscoito eu vou parar essa repetição vou lá escovar meus dentes vou parar é meio louco você falar isso mas é um exemplo bastante simples para mostrar essa repetição do teste a calda né eu vou pegar o meu pacote né vou abrir o pacote e vou pegar o biscoito aí vou comer o biscoito eu fiquei nem se tem biscoito ali ou não então em algumas condições eu preciso fazer primeiro teste a cabeça para saber se tem biscoito se não vou comer o quê se não tem biscoito e
depois eu vou comer um biscoito sem continuar tendo biscoito eu vou lá buscar o próximo biscoito e assim por diante até não ter mais biscoito eu encerro essa estrutura de repetição e é muito útil essa estrutura de repetição vários problemas computacionais precisam de estrutura de repetição ok outra exemplo aqui de fluxograma justamente para você trocar uma lâmpada né aquele exemplo já tinha passado eu vou lá no início eu ligo então o pintor se a lâmpada não acende né se ela acender acabou não tem que fazer se não acende aí sim eu vou pegar a escada
posicionar a escada pegar uma lâmpada nova subir na escada assim por diante e vou continuar essa repetição até a lâmpada acender se essa lâmpada não acender na verdade eu vou fazer o que eu vou retirar essa lâmpada colocar uma lâmpada nova na verdade aqui eu não coloquei estrutura de repetição o ideal seria ter uma estrutura de repetição aqui para que eu ficasse execução até a lâmpada acender por que que eu tô trocando uma lâmpada nova massa se a lâmpada não acende na segunda vez ele vem para cá e ele faz essa repetição ok muito bem
duas atividades aqui para vocês depois olharem lá no ava também que são as mesmas as anteriores que o fluxograma para trocar o pneu furado e o fluxograma para fazer o saque do dinheiro no banco 24 horas então recomendo que vocês façam antes e olhar resolução no site ok bem existe um outro diagrama aqui que eu vou falar rapidamente que o diagrama de chaplin né ele não é muito utilizado mas como consta na literatura é importante que vocês conhecerem né ele é conhecido também como diagrama de nazis ele permite uma visão hierárquica e lógica do programa
na ele tentou de uma maneira ar kia interessante mas ele não é muito utilizar ah e por fim o diagrama de blocos né hoje a gente tem várias linguagens de programação em bloco nós vamos usar uma delas esses blocos aqui são na ferramenta scratch nós vamos usar o scratch nas próximas aulas pra gente poder aprender a criar resolver problemas usando programação em blocos ok bem da aula de hoje é isso até logo pessoal [Música] e aí e aí e aí e aí e aí e aí e aí
Copyright © 2024. Made with ♥ in London by YTScribe.com