Olá pessoal aqui é o Fábio da B Treinamentos e esta é a nossa segunda vídeoaula de lógica de programação na aula passada estudamos a sequência lógica nós vimos que para que as tarefas possam ser realizadas com êxito elas devem estar ordenadas em uma sequência lógica e as tarefas ordenadas nos leva a noção de algoritmo Então vamos ver o que é um algoritmo bom o algoritmo é uma sequência de instruções ordenada finita e não ambígua né prestem atenção nesses termos ordenada finita e não ambígua que são executadas mecanicamente tá para executar uma tarefa é como se
fosse uma espécie de receita de bolo Pensa numa receita de bolo a receita de bolo ela é ordenada e tem uma série de instruções tá em sequência é como se fosse um algoritmo tá o algoritmo ele tem um fim por isso a gente chamei de finito quer dizer ele acaba em determinado ponto ele geralmente se comunica com o mundo exterior que é para capturar informações do ambiente e devolver informações processadas e executa essas instruções em um tempo finito tá cada linha do algoritmo que você vai escrever deve executar uma única instrução tá então para cada
linha uma instrução se eu tiver duas instruções para para executar eu coloco uma instrução em cada linha tá e o algoritmo ele é não ambíguo significa que a instrução ela não deve deixar dúvidas sobre o que ela faz tá ela tem que ser direta assim você terá o algoritmo vamos ver um exemplo de algoritmo vamos montar um algoritmo uma sequência lógica de instruções para preparar um café utilizando papel de filtro e uma caneca então se eu tivesse que instruir vamos supor que eu tenho que instruir um robozinho para fazer um café como é que eu
diria a ele que ele deve deve e proceder PR para fazer um café utilizando papel de filtro e uma caneca então A ideia é mais ou menos essa aqui tá você tem aí eu coloquei 12 Passos obviamente os passos podem variar de pessoa para pessoa tá uma característica dos algoritmos é essa eles podem ser ligeiramente diferentes de pessoa para pessoa que escreve o código tá então uma uma resolução possível é essa aqui Peg um coador pegue o papel de filtro coloque o no coador coloque o conjunto so uma caneca pegue o pó de café no
armário coloque um pouco de pó no coador ferva água despeja a água fervente no coador espere a água toda escorrer retire o coador adoce o café e sirve o café essa é uma resolução possível para esse algoritmo fazer o café legal ah Note que é possível inserir outras instruções aí no meio tá e uma coisa interessante muitas dessas instruções que foram utilizadas nesse algoritmo por si só elas são tarefas complexas e compostas tá então por exemplo ferva água ferva água é uma tarefa complexa eu poderia escrever um algoritmo inteiro especificando como se ferve a água
Então essa é uma característica dos algoritmos brutos tá E esses algoritmos eles devem ser refinados tá então o algoritmo para fazer o café é funcional Mas ele tem muitas outras ações que devem ser realizas e muitas são então desdobradas em ações menores a gente dá o nome técnico de ações não primitivas para essas ações que você pode desdobrar em ações menores como por exemplo ferver a água e ações que não podem mais ser desdobradas são chamadas de primitivas é uma ação que por si só realiza uma tarefa e você não consegue quebrá-la em ações menores
tá vamos ver um exemplo de refinamento ferver a água tá ferver água na verdade poderia ser um uma espécie de subalgoritmo refinado dessa forma pegar a caneca levar a pia colocar sobre a torneira abrir a torneira encher a caneca de água fechar a torneira levar a caneca ao fogão acender o fogão tá e esperar ferver a água Então veja que uma das ações do nosso algoritmo fazer café foi refinada tá ela foi subdividida em ações menores E essas ações menores que vocês estão vendo ainda pode podem ser refinadas mais vezes e a ideia quando você
for criar um algoritmo computacional é isso é chegar nas primitivas é refinar o seu algoritmo a sua ideia do fluxo do programa até chegar em Partes indivisíveis Tá que são as instruções primitivas da máquina legal Dá um pouco de trabalho mas é bastante funcional como é que eu represento o algoritmo então a gente tá falando de de refinamento a gente tá falando de algoritmo de sequência de instruções como é que eu represento isso no papel ou no computador mesmo então há várias formas de você representar o algoritmo você pode representá-lo através de fluxograma através de
um diagrama de shopping e ou português estruturado aqui no nosso curso a gente vai dar ênfase ao português estruturado tá porque ele é bem próximo de um código de programação de um código fonte nós vamos trabalhar um pouco também com fluxogramas tá vocês vão ver vários fluxogramas ao longo do do curso e vamos ver o que é um diagrama de Chap mas na verdade nós não vamos utilizá-lo durante o curso tá só para conhecer mesmo então esses algoritmos que nós vimos por exemplo fazer o café frever água eles podem ser representados de fluxograma diagramas ou
português estruturado fluxograma o fluxograma ele descreve o fluxo de dados e instruções usando desenho geométricos tá então eu vou utilizar figuras geométricas desenhadas no papel simbolizando entrada saída e processamento de dados fluxograma é indicado para algoritmos de pouca extensão ou se você tiver um algoritmo de grande extensão você pode quebrá-la em pedaços menores pedaços modulares e desenhar fluxogramas para eles tá então fluxograma é ferramenta interessante Principalmente quando você tá começando a aprender lógica de programação porque ele permite a você visualizar o que tá acontecendo no seu algoritmo então você enxerga na forma de figura Sabe
aquela história quer que eu desenhe é exatamente isso que o fluxograma faz el desenha para você o algoritmo para isso você faz uso de alguns símbolos básicos tá então a simbologia básica e universal para fluxogramas é essa que vocês estão vendo Então esse primeiro símbolo esse retângulo com os cantos arredondados os lados arredondados indica início ou fim de programa ou de um fluxo de um bloco de programa tá a setinha indica o fluxo de dados indica de onde vem onde ela vai de qual parte do programa está saindo e PR onde ela está indo o
retângulo é o bloco de processamento e manipulação de dados então aqui dentro acontece alguma coisa esse trapézio aqui indica entrada e saída de dados informação entra e sai do meu programa você representa isso com essa figura outros diagramas oang é uma estrutura de decisão quando você precisa no seu programa o que fazer naquele momento aí tem mais de uma alternativa possível você utiliza uma estrutura de decisão essa bolinha aqui é o conector de partes do diagrama tá quando o diagrama é grande você pode cortar em partes e a bolinha simboliza que ele terminou num pedaço
e continua em outro e esse outro símbolo aqui é o conector de página né terminou a página eu utilizo esse conector para indicar que o fluxograma continua na página seguinte e esse último desenho aqui é entrada manual de dados a teclado ou seja alguém vai digitar alguma coisa no teclado e vai entrar com essa informação no seu programa tá Esses são alguns símbolos básicos de fluxogramas na prática Existem muitos outros tá muitos outros aqui no nosso curso vamos trabalhar apenas com esse símbolos básicos pois eles são suficientes pra gente entender o processo de lógica de
programação legal então vamos ver um exemplo de um fluxograma em Ação temos um probleminha para resolver probleminha é calcular a nota média de um aluno baseado nas notas de quatro provas e verificar se ele foi aprovado Então é isso tá eu forneço quatro notas calculo a média do cara e verifico se ele foi aprovado e para saber se ele foi aprovado eu vou usar o seguinte critério se a nota média for igual ou maior do que sete ele está aprovado caso contrário ele está reprovado Tá então vamos ver como é que fica no fluxograma isto
fluxograma está aqui tá mas vamos ver o algoritmo antes então algoritmo são é a sequência de instruções a gente sempre simboliza com a palavra início onde começa o algoritmo e fim quando ele termina tá então início o que que eu preciso fazer Quais são as ações da sequência lógica primeiro eu entro com as quatro notas depois eu calculo a média depois eu verifico se a média é maior ou igual a 7 se for eu apresento no vídeo a mensagem aprovada se não for eu apresento no vídeo a mensagem reprovado Então essa é a minha sequência
de instruções para esse algoritmo e o fluxograma Fica assim então símbolo de início de programa tá aqui a setinha de Flux indicando que do início eu venho para cá aqui o nosso símbolo de entrada do teclado então entro com as quatro notas tá digito as quatro notas no meu programa fluxo aqui o retângulo dizendo que vão acontecer tarefas ações então aqui é calculada a média fluxo estrutura de decisão aqui eu pergunto a média calculada é maior ou igual a 7 sim ou não a resposta sempre vai ser verdadeiro ou falso sim ou não se sim
eu simbolizo com essa letra S tá então eu vou ter um desvio pro lado de cá e aí eu vou cair nesse nesse fluxograma aqui com a mensagem aprovado tá então saída de dados aprovado se não se a média não for maior maior que S então eu vou cair nesse outro símbolo que indica reprovado que é saída de dados reprovado tá então decisão sim saída de dados aprovado não saída de dados reprovado tá depois de exibir as mensagens na tela dependendo do teste eu sigo o fluxo de dados e chego aqui nesse símbolo de fim
de programa tá então fluxo programa ele te mostra visualmente como é que está acontecendo o fluxo de informações e processamento no seu programa legal é uma ferramenta bastante útil no começo Principalmente quando você está aprendendo a lógica de programação existe uma outra forma também de você representar e um algoritmo por meio de figuras que é chamado diagrama de chapping na verdade e tem o nome original diagrama de nas schneiderman que são os autores originais desse tipo de diagrama Mas ele foi ampliado por Ned Shing tá ele substitui o fluxograma tradicional que a gente acabou de
ver por um diagrama de quadros que vai apresentar uma visão hierárquica estruturada Da Lógica Teoricamente ele facilita a codificação do algoritmo e a representação de algumas técnicas especiais de programação como a recursividade então o diagrama de chapping para esse nosso programa do cálculo da Média ficaria assim tá é um bloco tá então início representa tudo sempre em retângulos leia as notas eu chamei de nota 1 Nota 2 nota 3 e nota 4 N1 até n4 então esse comando Leia significa Estou lendo o que o usuário está digitando no teclado quem que está lendo é o
computador que está lendo é o seu programa que está lendo não é o usuário tá usuário está digitando e o computador está lendo as notas depois soma recebe somatório das notas então eu somei as quatro notas e armazenei num local chamado soma veja esse simbolozinho essa setinha aqui pra esquerda isso aqui significa atribuição a gente lê assim soma recebe N1 + n2 + N3 + n4 depois média recebe o conteúdo de soma dividido por quro tá veja que é um fluxo eu vou assim top Down tá do primeiro pro último aí eu caio numa estrutura
de decisão tá que a gente tá perguntando a média é maior ou igual a 7 sim ou não aí tinha a ramificação como a gente tinha no fluxograma também tem aqui no diagrama de chapping se a média calculada for maior ou igual a 7 sim então resultado recebe aprovado se não resultado recebe reprovado e aí eu mando escrever na tela o conteúdo de res né Desse local res que tem a mensagem aprovado ou reprovado uma das duas e o comando escreva significa vou escrever na tela o programa vai escrever na tela resultado não é o
usuário que vai escrever tá então o programa executa essa ação de escrever na tela e aí eu finalizo o diagrama de shaping legal então vocês viram nessa nessa aula como codificar um algoritmo tá utilizando ações como representá-lo em fluxograma e como representá-lo em diagrama de chaing na próxima videoaula a gente vai falar sobre o português estruturado tá que é a técnica que a gente vai utilizar na maioria das nossas videoaulas vamos ver o um exemplo de código em português estruturado legal então Obrigado por assistir essa vídeoaula aproveite para se inscrever em nosso canal e até
a próxima