quinta-feira, 7 de janeiro de 2021

Aula 02 - Lógica de Programação

Figura 01 - Fluxograma
Algoritmos
    Um algoritmo é uma sequência de instruções que utilizamos para solucionar um ou vários problemas. O algoritmo deve sempre chegar ao resultado final esperado e é caracterizado por ser um conjunto de instruções objetivas.
    Temos várias formas de representar algoritmos, sendo as mais o utilizadas representadas por formas que fazem alusão a tomadas de decisões (fluxograma) e por meio do pseudocódigo, sendo este mais utilizado para o ensino de lógica de programação.
    Fluxograma: É definido por uma série de símbolos, em conjunto com desenhos geométricos que representam os passos do algoritmo, tais como: início, entrada e saída de dados, tomada de decisões, estruturas de repetição e final do algoritmo.
    Pseudocódigo: O pseudocódigo, também conhecido como Português estruturado, utiliza PDL - Program Design Language (Linguagem de Projeto de Programação). Ou seja, é uma espécie de narração do que o programa deve fazer. 
Figura 02 - Pseudocódigo
    O português estruturado é uma simplificação extrema do Português, limitada a umas poucas palavras e estruturas que têm um significado muito bem definido.

    O pseudocódigo é a base que todos devem ter para aprender uma linguagem de programação, pois é ele que intermedia a linguagem falada (humana) para a linguagem de programação (computacional).

    Para isso, utilizaremos o pseudocódigo em um programa chamado VisuAlg, que abordaremos a seguir.

    VisuAlg: Conhecemos os tipos de representações de algoritmos, e, agora, iremos conhecer o programa que executará nossos pseudocódigos.
Os pseudocódigos podem ser escritos facilmente em uma folha de papel ou em um bloco de notas, mas para tornar isso prático vamos adotar o VisuAlg como nosso software para escrever nossos algoritmos na forma de pseudocódigo e ver na hora o seu resultado.

Figura 03 - VisualAlg

    O  VisuAlg é um software criado na Universidade de Caxias do Sul no estado do Rio Grande do Sul, com a finalidade de oferecer aos alunos uma forma de exercitar o conhecimento adquirido. Para utilizá-lo é necessário fazer o download do programa. O mesmo pode ser encontrado em: 20_03_01_Visualgv25_exe.

    O VisuAlg é um interpretador simples de pseudocódigo utilizado por professores para o ensino de lógica de programação.
    Seu objetivo não é criar softwares, mas auxiliar o aluno a entender a execução de seu algoritmo.
    Para a criação de um algoritmo, é necessária a utilização de palavras-chave. Abaixo, seguem as principais para o funcionamento:
  • algoritmo: comando que irá definir o nome do programa; deve ser feito em aspas duplas;
  • var: comando que especifica a área em que as variáveis serão declaradas. É aqui que colocaremos as variáveis que iremos utilizar;
  • inicio: comando que informa o início do programa; é nesse bloco que ficarão os comandos e a lógica que utilizaremos para criar nosso algoritmo.
  • fimalgoritmo: comando que informa que é o final do algoritmo.

    Dentro do nosso algoritmo utilizaremos palavras-chave que irão ler o que for digitado e escrever na tela para informar algo ao usuário.

  • escreva: esse comando irá escrever na tela alguma informação ao usuário. Ex.: Escreva ("Digite seu nome").
  • leia: esse comando irá ler o que foi digitado pelo usuário. Ex.: Leia(nome). Esse nome entre parênteses é uma das variáveis que deve estar declarada no bloco var que vimos anteriormente.
  • Escreval: esse comando é idêntico ao escreva, a não ser pelo fato de que ele pula uma linha. Ex.: Escreval ("Digite seu nome").

Tipos de Dados

Figura 04 - Tipos de dados: Real e Inteiro.

    Agora começaremos a mergulhar na parte computacional, entender como os algoritmos funcionam aplicados em um sistema de computador.
    Quando criamos um programa computacional, temos que levar em conta quais os tipos de dados que poderão ser inseridos no sistema. São eles que dirão o que poderá ser digitado ou quais valores nosso algoritmo aceitará.
  • Tipo de Dado Inteiro: Aceitam somente números inteiros positivos e negativos. Não aceitam números decimais.
  • Tipo de Dado Real: Podem ser valores positivos e negativos. Podem ser números decimais e inteiros. No VisuAlg, o separador decimal é o ponto, não a vírgula.
  • Tipo de Dado Literal: Podem ser letras, números ou caracteres especiais, ou seja, podem ser qualquer tipo de valor. Os valores deste tipo devem estar dentro de aspas duplas ("").
  • Tipo de Dado Lógico: São respostas para uma pergunta, a qual deverá ter apenas duas possíveis respostas: sim ou não. Porém, sempre resultam como VERDADEIRO ou FALSO.

Variáveis

Figura 05 - Organização de variáveis

    Variável é onde iremos guardar dados essenciais para o funcionamento do nosso algoritmo/programa.
  • Uma variável guarda um valor informado em uma posição de memória, seu conteúdo pode sempre ser alterado, como o próprio nome já diz "variável".
  • Uma variável só pode ter UM valor dentro dela.

    Uma gaveta informando que irá ter meias, dentro dela deverá ter apenas meias. Possivelmente, alguém poderá colocar algo diferente (camiseta), onde deveria ter apenas meias. Nos algoritmos computacionais isso não acontece, uma vez que determinado que uma variável é do tipo inteiro, ela só poderá ter números inteiros.
    Variáveis têm três passos principais para serem criadas, são eles:

  • Ter um nome: Toda variável criada em um programa deve ter um nome para que possa ser identificada.
  • Ter um tipo de dado vinculado: Vimos, na lição anterior, os tipos de dados, e é aqui que iremos utilizá-los. Ou seja, é aqui que diremos qual tipo de dado pode conter em nossa variável.
  • Ter um valor atribuído: Não tem por que eu criar uma variável sem ter a intenção de colocar algum dado dentro dela.
Figura 06 -  Variável
    Variáveis são espaços da memória do computador destinados ao armazenamento de dados. Para usar variáveis no programa, deve-se dar um nome a ela e informar qual o seu tipo de dado. E, no decorrer do algoritmo, atribuir o valor a ela necessário. 

Regras para o nome da variável:

  • nomes de variáveis não podem ser iguais a palavras reservadas;
  • nomes de variáveis devem possuir como primeiro caractere uma letra ou sublinhado '_' (os outros caracteres podem ser letras, números e sublinhado);
  • nomes de variáveis devem ter no máximo 127 caracteres;
  • nomes de variáveis não podem conter espaços em branco.
  • Essas são as regras para nossas variáveis funcionarem no programa.

    Palavras Reservadas: Palavras reservadas são comandos que o algoritmo processa como ação e não como valor, por exemplo, não podemos criar uma variável com o nome de algoritmo, var, entre outros, pois estas estão reservadas para uso do algoritmo.
    Tipos de dados: Para definir o tipo de dado de uma variável, primeiro declaramos a variável dentro do bloco de variáveis do nosso programa, em seguida colocamos dois pontos (:) e o tipo de dado (inteiro, literal, lógico ou real). Exemplo:

  var nomeDaVariavel: TipoDeDado ;
    Atribuindo Valor: Para atribuir um valor a uma variável, precisamos usar o operador de atribuição que é <- , comforme mostrado abaixo:  Exemplo:
  var nomeDaVariavel <- "ARDUINO" ;

    Nesse exemplo eu estou dizendo que a variável "nomeDaVariavel" irá receber o valor "ARDUINO" como literal. A variável deve ter sido declarada com o tipo literal para que aceite tal tipo.

    Expressões Aritméticas: Com um algoritmo resolvemos problemas humanamente difíceis, custosos ou repetitivos, sendo, em sua maioria, rotinas de cálculos. Portanto a matemática estará inserida em nossas instruções a fim de nos auxiliar a resolver problemas. Por exemplo, um computador consegue fazer a média de 15+18+43+50+2+44+78 muito mais rápido do que um humano.
Então, assim como na matemática, expressões aritméticas em algoritmo são basicamente a mesma coisa, ou seja, são um conjunto de símbolos que representam as operações básicas da matemática, que são: ( + ) Adição; ( - ) Subtração; ( * ) Multiplicação e ( / ) Divisão.
Veremos agora como podemos utilizar essas expressões em nossos algoritmos utilizando as variáveis.

  • Primeiramente, declaramos as variáveis que iremos utilizar no nosso algoritmo.
  • Em seguida, inicio meu algoritmo e atribuo os valores que eu quero para as minhas variáveis.
  • Feito isso, eu posso criar minha expressão aritmética, no exemplo acima estou fazendo a média de três notas, em seguida mostrando na tela.

    Então nosso algoritmo ficará da seguinte forma:

algoritmo "aritmetica"
            var
                n1,n2,n3,media: Real
    inicio
            n1 <- 10
            n2 <- 8
            n3 <- 7.5
            media <- (n1+n2+n3) /3
    escreva (media)
finalgoritmo

    Expressões aritméticas são aquelas que, utilizando operadores aritméticos, resultam em um valor inteiro ou real. Ou seja, o resultado sempre será um número, seja ele do tipo real ou do tipo inteiro.             Exemplo: Informe qual resultado da expressão aritmética será exibido no algoritmo a seguir:

algoritmo "Média Aritimètica"
    var
        
x,y,resultado: Real
    inicio
        x <- 2
        y <- 5
    
resultado <- x/y*3+(1-8)*x+30
    escreva
(resultado)

fimalgoritmo
Figura 07 -  Expressão literal
    Resolução:   [ 2/5 * 3 + ( 1 - 8 ) * 2 + 30 ] = [ 0,4 * 3 + ( -7 ) * 2 + 30 ] = [ 1,2 - 14 +30 ] = 17,2. Resposta: Será exibido o número 17,2.  
 
 
    Expressões Literais: Expressões literais são expressões de concatenação, ou seja, elas juntam valores por meio do operador de concatenação, que, no VisuAlg, é a vírgula (,). 
    Exemplo: Meu nome é Aduino. Meu sobrenome é Uno. Meu nome completo é Arduino Uno. O nome completo é resultado de uma expressão literal.
    Expressões literais recebem mais de um valor e resultam SEMPRE em um valor do tipo literal.
 
Figura 08 -  Operadores relacionais lógicos
    Expressões Lógicas: Agora iremos trabalhar com alguns operadores lógicos, e é de extrema
importância que saibamos o que significa cada um deles. As expressões lógicas servem para compararmos valores e dizer se o resultado é Verdadeiro ou Falso. Essas expressões Sempre resultam em um dado do tipo lógico. Utilizam os operadores relacionais lógicos (maior, menor, igual, diferente etc.).
    Além disso, expressões lógicas podem conter expressões aritméticas dentro delas, veremos a seguir.
    Operadores relacionais lógicos: Todos esses exemplos nós podemos colocar no VisuAlg e ver se o resultado é realmente o esperado. Veremos na tela a seguir. Abra o VisuAlg e coloque as expressões lógicas dentro dos parênteses e aperte a tecla F9 para executar o algoritmo e exibir o resultado.
Figura 09 -  Expressão lógicas

    
Agora, para fazer o teste dos operadores lógicos, montaremos um pequeno programa que faz a leitura de dois números fazendo as devidas comparações entre eles.
    Expressões lógicas são expressões que recebem dois ou mais valores, além de poder ter outras expressões dentro dela, mas no final elas sempre retornam dados lógicos (Verdadeiro ou Falso).
    Operadores de sentença: E. O operador E refere-se à comparação binária de termos, ou seja, 1+1 E 3-1 é verdadeiro ou falso? Verdadeiro, ambos os resultados são 2. Remete à combinação verdadeiro + verdadeiro = verdadeiro.
    Operadores de sentença: OU. O operador OU refere-se à comparação binária de termos. Remete à combinação verdadeiro + falso = verdadeiro. Se qualquer um dos termos estiver correto a expressão é verdadeira 1+1=2 OU 3+1=6? Verdadeiro, o fato do primeiro termo ser verdadeiro já torna a expressão verdadeira. Remete à combinação verdadeiro + falso = verdadeiro.

Estruturas de Condição 
    Agora iremos conhecer as estruturas de condição, que servem para nos auxiliar na tomada de alguma decisão. São definidas por expressões lógicas, em que o programa irá executar a estrutura de acordo com as respostas (VERDADEIRO ou FALSO). Considerando um cenário real e cotidiano, elas são as várias decisões que tomamos no nosso dia a dia. Vamos imaginar que estamos saindo de casa, e, de repente, começa a chover. O que devemos fazer? 
  • Se está chovendo = pegar um guarda-chuva. 
  • Se não está chovendo = não preciso de um guarda-chuva. 
    Isto foi uma condição que determinará o que eu deveria levar comigo. 
Figura 10 -  Estrutura de condição "SE... ENTÂO"
    Saindo um pouco do cenário real e indo para o ambiente computacional, temos a seguinte tarefa: Cadastrar pessoas maiores de idade no sistema. Para isso devemos fazer uma estrutura de condição para verificar a idade digitada. No cadastro não podem ser cadastradas pessoas menores de idade.

    
Demonstrada a importância de fazer comparações em seu algoritmo, iremos evoluir para aprender como faremos em linguagem de máquina, pois o que sabemos até agora é em relação aos operadores, estes, por sua vez, nos auxiliam a comparar. Por exemplo: podemos comparar se o 15 é maior do que 16; o nosso algoritmo irá retornar falso. Como escrever uma estrutura condicional em algoritmo?
Figura 11 -  Estrutura de condição
 "SE... ENTÃO ... SENÃO"

    
No exemplo anterior, vimos como entrar em uma condição caso ela dê Verdadeira,, e se for necessário tratar se a expressão for falsa? Para isso utilizamos a cláusula Senão. Nas estruturas condicionais, temos a possibilidade de fazer condições sequenciais/consecutivas sempre que necessário. Podemos utilizar qualquer expressão lógica, dessa forma, as estruturas de condições servem para controle de ações, valores e variáveis do sistema.

Estruturas de Repetição 
    Agora, iremos aprender sobre as estruturas de repetição, elas irão nos economizar muito código na hora de escrevermos nossos algoritmos. Estruturas de repetição são conjuntos de comandos que repetem instruções em uma quantidade predeterminada ou não. Ou seja, são blocos de códigos que se repetirão sempre que se enquadrarem nos blocos condicionais a eles atribuídos. Quando utilizaremos? Sempre que precisarmos fazer coisas repetitivas. 
Figura 12 -  Estrutura de Repetição
No VisuAlg temos disponíveis três estruturas de repetição para utilizarmos em nossos algoritmos. São elas:
  • Para ... faça;
  • Enquanto ... faça;
  • Repita ... até;
    Para...faça: A estrutura de repetição "Para Faça" é utilizada da seguinte forma: 
Figura 13 -  Estrutura de Repetição "para ... faça"
  • Nome da variável que irá controlar a repetição;
  • Valor da variável onde iniciará a repetição;
  • Valor da variável onde terminará a repetição;
    A variável que irá controlar a repetição deve estar definida no bloco de variáveis. Veja na figura 13 como fica utilizando a estrutura de repetição para ... faça.
    Então, a essência para se utilizar as estruturas de repetição é identificar onde há blocos que se repetem mais de uma vez no nosso algoritmo.

    Enquanto...faça: Na estrutura "Para Faça", ela repete durante a iteração de um valor, ou seja, repete-
Figura 13 -  Estrutura de Repetição "enquanto ... faça"

se até chegar no número informado. Há outras estruturas que repetem a partir de uma condição (expressão lógica), que é o caso do "enquanto..faça". Os comandos são executados enquanto a expressão lógica for verdadeira.
    Exemplo: no caso de encontrar a média de 50 alunos a condição é que a quantidade de médias calculadas seja menor ou igual a 50. A solução é usar um contador que é uma variável com um dado valor inicial que é aumentado (incrementado) a cada repetição.
    Repita...até: A estrutura "Repita...até" segue o mesmo princípio da "Enquanto Faça", porém a
Figura 14 -  Estrutura de Repetição "repita ... até"

verificação condicional é realizada no final da repetição, deste modo pelo menos uma vez a estrutura é executada. Um algoritmo que calcula a soma de um número digitado e mostre para o usuário até ele sair do programa.
    Para realizar a repetição com teste no final utilizamos a estrutura repita. A estrutura repita permite que um bloco de comandos seja repetido até que uma determinada condição seja verdadeira.


O software VisuAlg V2.5 está disponível para download no link: 20_03_01_Visualgv25_exe.

© Direitos de autor. 2020: Gomes; Sinésio Raimundo. Última atualização: 23/03/2021

Nenhum comentário:

Postar um comentário