Sumário
Aula 2 – Variáveis, Constantes, Tipos de Dados e Operadores ............................... 29
2.1 Variáveis e Constantes.............................................................................................. 29
2.2 Identificadores.......................................................................................................... 30
2.3 Tipos de Dados......................................................................................................... 31
2.4 Declarações de Variáveis.......................................................................................... 32
2.5 Atribuição de Valores para Variáveis....................................................................... 33
2.6 Operadores................................................................................................................ 36
2.7 Definição do Problema Base:................................................................................... 41
2.8 Atividades propostas para a aula 2 .......................................................................... 43
2
Aula 2 – Variáveis, Constantes, Tipos de Dados e Operadores Objetivos Definir e compreender o uso de variáveis e constantes. Compreender o que são e quais são os tipos de dados básicos. Conhecer a definição e o correto uso de expressões e operadores.
Antes de começarmos a programar algoritmos, devemos conhecer os conceitos que serão apresentados a seguir.
2.1 Variáveis e Constantes
Através das variáveis e das constantes podemos guardar as informações que são utilizadas enquanto o programa está sendo executado. Elas são regiões da memória RAM (Random Access Memory) do computador às quais associamos um nome (identificador) e guardamos um determinado conteúdo. Além disso, cada variável ou constante possui o tipo de conteúdo que ela pode armazenar.
A diferença entre as constantes e as variáveis é que as constantes mantêm seu valor inalterado durante todo o desenvolvimento da programação, enquanto que as variáveis podem ter seu valor alterado a qualquer momento.
Para saber mais sobre o funcionamento da Memória RAM, acesse o site
http://informatica.hsw.uol.com.br/memoria-ram.htm
Fazendo uma comparação com a sua vida pessoal, imagine o seu guarda-roupas. Ele possui diversas divisões, não é mesmo?
Imagine, também, que ele possua várias gavetas e que elas estejam organizadas da seguinte forma: uma gaveta para as camisetas, outra gaveta para as roupas íntimas e, por fim, uma gaveta para as meias. 3
Fazendo uma comparação desta situação pessoal com as variáveis, temos que: O seu guarda-roupas é como se fosse a memória RAM do computador. Cada gaveta é como se fosse uma pequena área dentro da memória RAM que guarda um determinado conteúdo, ou seja, as variáveis ou as constantes. Os tipos de roupas guardadas é como se fossem os tipos das variáveis e das constantes, ou seja, o valor que elas podem armazenar. E, cada roupa guardada em cada gaveta, é como se fosse o conteúdo ou valor armazenado em cada variável ou constante. As variáveis são úteis para guardar valores enquanto o algoritmo está sendo executado. Quando você fecha o VisuALG ou cancela a execução, todos os valores armazenados nas variáveis se perdem. Para que isso não aconteça, você precisa guardar os dados em um arquivo texto ou em um banco de dados, mas isso é conteúdo para outras disciplinas.
Leia mais sobre memória principal e memória secundária. Acesse: http://pt.wikipedia.org/wiki/Mem%C3%B3ria_%28computador%29
2.2 Identificadores São os nomes das variáveis e constantes utilizadas na construção de algoritmos. O acesso a estas variáveis ou constantes é feito através de seus respectivos identificadores. Normalmente, as regras de criação de um identificador para variáveis e constantes são: O primeiro caractere deve ser uma letra (maiúscula ou minúscula). o Exemplos: total, idade, Nome, dataNascimento, etc... Não utilize espaços nos nomes. Substitua-os com o caractere “_”. o Exemplos: data_nascimento, dias_uteis, ano_nascimento, etc... Não utilize caracteres de acentuação e nem cedilha. o Exemplos: media, acoesParaProximoAno, acoes_para_proximo_ano,
total_funcionarios, etc... 4
Várias Linguagens de Programação fazem diferenciação entre letras maiúsculas e minúsculas. Quando isso acontece, dizemos que a linguagem é Case Sensitive. Desta forma, nome e Nome serão consideradas duas variáveis diferentes, da mesma forma que dataNascimento e datanascimento. No VisuALG isso não acontece, mas é muito importante que você mantenha um padrão para a escrita de identificadores e variáveis e constantes.
Identificadores válidos: nome, telefone, idade_filho, idadeFilho, nota1, n1, Est_Civil
Identificadores
inválidos: 3Endereco,
Estado
Civil,
PARA,
algoritmo,
numero/complemento
O identificador PARA é inválido, pois é uma palavra reservada. Em qualquer linguagem de programação, se uma palavra é reservada, ou seja, se ela é própria da linguagem de programação, então você não pode utilizá-la fora daquele contexto para o qual ela foi criada. Neste caso, PARA servirá pra definir uma estrutura de repetição, sendo assim, você não pode utilizá-la pra nomear uma variável.
2.3 Tipos de Dados Salvetti & Barbosa (1998) ressaltam que um programa de computador é descrito em uma linguagem de programação. Geralmente, cada linguagem de programação tem seus próprios tipos de dados, isto é, conjunto de valores, operações e relações já implementadas (disponíveis para uso). Na implementação surge o conceito de domínio, isto é, da limitação do conjunto de valores dos elementos representados.
Neste caderno, as explicações sobre os tipos de dados do VisuALG não têm a pretensão de serem inéditas, pois elas estão baseadas nas explicações sobre a linguagem do VisuALG, disponível no site da empresa Apoio Informática. O VisuALG prevê quatro tipos de dados: inteiro, real, caracter, literal (conjunto de caracteres) e lógico (ou booleano). 5
As palavras-chave ou palavras reservadas que os definem são as seguintes (observe que elas não têm acentuação): inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais. o 3, 6, 10, 1000, 35 real: define variáveis numéricas do tipo real, ou seja, com casas decimais. o 3.5, 7, 8.90, 56.78 Literal: define variáveis do tipo string, ou seja, cadeia de caracteres. o “Maria”, “José”, “Escreva o seu nome:”, “Idade:” logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.
O VisuALG permite também a declaração de variáveis estruturadas através da palavrachave vetor, como será explicado na aula 06.
2.4 Declarações de Variáveis Os nomes das variáveis devem começar por uma letra e depois conter letras, números ou underline, até um limite de 30 caracteres. As variáveis podem ser simples ou estruturadas (na versão atual, os vetores podem ser de uma ou duas dimensões).
Não podem existir duas variáveis com o mesmo nome.
Toda variável deve ser declarada na seção var antes de ser utilizada.
A seção de declaração de variáveis começa com a palavra-chave var, e continua com a seguinte sintaxe:
6
Exemplos: var a: inteiro valor1, valor2: real nome_do_aluno: literal sinalizador: logico
Note que não há a necessidade de ponto e vírgula após cada declaração: basta pular linha.
Veja as declarações de variáveis exemplificadas acima, mas dentro de um contexto real, ou seja, dentro de um algoritmo no ambiente do VisuALG.
Pronto! Com as variáveis declaradas, agora precisamos armazenar valores nelas e começar a desenvolver algoritmos mais completos.
2.5 Atribuição de Valores para Variáveis
Basicamente, existem duas formas de se armazenar valores em variáveis:
1. O usuário digita um valor através do prompt, tecla enter e o valor digitado é
armazenado na variável através do comando de leitura leia. 7
Exemplos: Leia(nome) Leia(idade) Vamos relembrar o código criado na última aula, quando exemplificamos o uso do comando leia para entrada de dados.
Crie um novo algoritmo no VisuALG, digite o código abaixo e tecle F9 para ver o resultado.
Observando o prompt de execução deste algoritmo, você deve perceber o seguinte: o cursor pisca, esperando que o usuário digite algo. Quando o usuário digitar um número e teclar <enter>, o valor digitado será armazenado na variável numero. Desta forma, o programador pode fazer o que precisar com esta variável, pois ela já possui um valor associado. Que tal observarmos alguns exemplos para tornar ainda mais clara essa ideia?
Vamos lá... Atividade: Sendo dada uma lista de alunos com o código de matrícula e nome do aluno, faça um algoritmo que peça ao usuário para entrar com os valores de matrícula e nome do aluno e, ao final, exiba estas informações. Veja uma proposta de algoritmo já com o prompt de execução do mesmo:
8
2. Outra forma de armazenar um valor em uma variável é utilizar o comando de atribuição.
A atribuição de valores para variáveis é feita com o operador <-. Do seu lado esquerdo fica o identificador da variável à qual está sendo atribuído o valor, e à
sua
direita
pode-se
colocar
qualquer
expressão
(constantes, variáveis,
expressões numéricas), desde que seu resultado tenha tipo igual ao da variável.
Exemplos: a <- 3 Valor1 <- 1.5 Valor2 <- Valor1 + a Valor3 <- (a * 3) nome_do_aluno <- "José da Silva" sinalizador <- FALSO
Atividade: Crie um novo algoritmo no Visualg, declare a variável inteira idade, atribua o valor 30 para esta variável e exiba a seguinte frase: “A sua idade é 30”. Salve o algoritmo como “algoritmo_exemplo_comando_atribuicao” e tecle F9 para executá-lo.
9
Observe: Novamente utilizamos a vírgula para concatenar valores. Neste caso, concatenamos a frase literal “A sua idade é” e o valor armazenado na variável idade. Observe que existe um espaço após o “é”. Se você esquecer-se de colocar este espaço, o resultado final será “A sua idade é30”. Percebe? Com a concatenação de valores conseguimos criar frases mais elaboradas.
2.6 Operadores
Os operadores são fundamentais para a resolução de problemas através de algoritmos, bem como já acontece com a matemática. Através deles conseguimos criar expressões mais completas e realizar cálculos mais reais.
Existem alguns que são fundamentais para o desenvolvimento de programas, como os aritméticos, os relacionais e os lógicos.
Operadores Aritméticos da linguagem do VisuALG: São aqueles cujo resultado da avaliação é do tipo numérico, seja ele inteiro seja real. Somente o uso de operadores aritméticos e de variáveis numéricas é permitido em expressões deste tipo.
10
Operadores de Caracteres da linguagem do VisuALG:
Operadores Relacionais da linguagem do VisuALG:
Os operadores relacionais realizam a comparação entre dois operandos ou duas expressões e resultam em valores lógicos (VERDADEIRO ou FALSO).
Operadores Lógicos da linguagem do VisuALG:
Os operadores lógicos atuam sobre expressões e também resultam em valores lógicos verdadeiro ou falso.
A tabela abaixo, conhecida por tabela-verdade, mostra os resultados das aplicações dos operadores lógicos conforme os valores dos operadores envolvidos. O operador lógico “e” só é verdadeiro se ambos os operandos também são verdadeiros. O operador lógico “ou” só é falso se ambos os operandos também são falsos. O operador lógico “não” inverte os valores, ou seja, se uma variável lógica é verdadeira, o operador lógico “não”, aplicado a esta variável, retornará o valor falso.
11
Observe os valores da primeira linha. Suponha que A seja uma variável lógica que armazena um valor ou uma expressão que retorne verdadeiro. Suponha que B também seja verdadeiro. Neste caso, o resultado de A e B (terceira coluna) será verdadeiro, pois o operador lógico “e” só é verdadeiro quando ambos os operandos também são verdadeiros, caso contrário ele é falso. O resultado de A ou B(quarta coluna) será verdadeiro, pois o operador lógico “ou” só é falso quando ambos os operandos também são faltos, em qualquer outro caso, o resultado será sempre verdadeiro.
De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos.
Exemplo: (1+4>3) e (2<>2) resulta FALSO, pois VERDADEIRO e FALSO resulta FALSO.
Ordem na Avaliação de Expressões
A execução das expressões acontece da esquerda para direita, mas além dos parênteses, que possuem uma prioridade maior, existem prioridades entre os operadores envolvidos na expressão.
Atenção nesta ordem. Ela pode influenciar no resultado de um algoritmo, assim como já acontece na matemática:
12
Figura 2.1 - Prioridade de resolução das expressões Fonte: TONET, 2012, p. 07
Exemplos: (3 + 3)/3 resulta o valor 2 3 + 3/3 resulta o valor 4 (2>3) ou (3<2) e (2<3) resulta Falso (2>3) e (3<2) ou (2<3) resulta Verdadeiro
Vamos praticar? Atividade: Faça um algoritmo que leia dois valores inteiros, calcule e exiba a sua média aritmética.
Uma proposta de algoritmo para resolver este problema:
13
Crie um novo algoritmo, digite o código acima (exceto as partes que já aparecem no editor do VisuALG), salve o algoritmo como algoritmo_calcula_media e tecle F9 para executá-lo. Atividade: Faça um algoritmo que lê o valor do raio e calcule a área do círculo correspondente.
Uma proposta de algoritmo para resolver este problema:
Crie um novo algoritmo, digite o código acima (exceto as partes que já aparecem no editor do VisuALG), salve o algoritmo como algoritmo_calcula_area e tecle F9 para executá-lo. 14
2.7 Definição do Problema Base: De forma bem geral, você precisa compreender que os programadores possuem alguns tipos de estruturas que podem ser utilizadas e combinadas entre si pra que seja possível organizar o raciocínio e escolher as instruções que formarão o algoritmo que resolverá algum problema. São elas: Estruturas Sequenciais Estruturas Condicionais Estruturas de Repetição
Figura 2.2 - Comparando as ferramentas que o programador precisa para poder desenvolver algoritmos Fonte: Simone Abrero, 2012 e Atualização Farmacêutica, 2012
Da mesma forma que o pedreiro possui a caixa de ferramentas pra trabalhar e o médico usa a maleta com os instrumentos que ele também necessita pra exercer a sua função, imagine que essas estruturas (sequencial, condicional e repetição) ajudam a preencher a caixa de ferramentas do programador. Você precisa aprender como funcionam estas estruturas, como elas podem ser utilizadas e quais são os comandos ou instruções relacionadas com cada uma. A estrutura sequencial será apresentada a seguir. As duas últimas estruturas, condicional e repetição, serão explicadas nas aulas seguintes. Para que você consiga perceber a evolução do conhecimento relacionado ao desenvolvimento de algoritmos, as principais explicações sobre cada estrutura serão baseadas no que chamaremos de “Problema Base”. Este problema base será construído a seguir e sofrerá modificações nas próximas aulas. Ou seja, começaremos a resolução do nosso problema base com os recursos que temos atualmente, ou seja, a estrutura sequencial, que é a mais simples de todas. O algoritmo será 15
melhorado a partir do momento em que aprendemos as demais estruturas. Problema Base: imagine um cenário relacionado com alunos, notas e disciplinas. Alguns pontos podem ser definidos a partir deste cenários: Alunos possuem nomes, matrículas, notas e disciplinas. Existem critérios de aprovação para cada disciplina. Desta forma, um aluno é aprovado na disciplina se consegue atingir estes critérios.
A Estrutura Sequencial admite uma instrução após a outra.
Desta forma, para começarmos a resolver o nosso problema base utilizando uma estrutura sequencial, devemos apenas utilizar uma instrução após a outra. Veja este exemplo:
Segue uma proposta de algoritmo para resolver este problema através de estrutura Sequencial, ou seja, um comando após o outro:
16
Crie um novo algoritmo, digite o código acima (exceto as partes que aparecem automaticamente quando você cria um novo arquivo ou abre o VisuALG) e tecle F9 para executá-lo.
Digite um nome. Tecle <enter>. Digite uma nota. Tecle <enter>. Veja o resultado que aparece no prompt (tela preta).
2.8 Atividades propostas para a aula 2
1. Resolva as expressões lógicas, determinando se o resultado é verdadeiro ou falso: a. (6<8)ou(3>7)= b. não (2<3)= c. (5>=6 ou 6<7 ou não(a+5-6=8) {onde a = 5} d. (34>9 e 5+u = 34) ou (5=15/3 e 8>12) = ((u = 29) e 8>12) {onde u = 29} e. 2>3=
2. Classifique os conteúdo das variáveis abaixo de acordo com seu tipo, assinalando com N os dados numéricos, com L os lógicos, com C os literais. ( ) VERDADEIRO
( ) -545
( ) " 444 "
( ) "Joaquim"
( ) "VERDADEIRO"
( ) 0.000078
( ) -49
( ) +342
( ) 569
( ) 5.3
( ) 2045
( ) FALSO
()0
( ) "abc"
( ) "João"
3. Assinale com um X os nomes de identificadores de variáveis válidos: ( ) leia
( ) enquanto
( ) escreva
( ) ABC DE
( ) etc.
( ) b316
( ) A123
( ) Aa
( ) guarda_chuva
( ) -_ad
( ) A&a
( ) guarda-chuva
( ) 123a
( ) –a
( ) 3cd1
17
4. Considere as declarações de variáveis apresentadas abaixo:
var NOME, COR, TESTE, DIA: literal SOMA, NUM: inteiro Salario: real X:lógico
a. ( ) Salario <- “insuficiente” b. ( ) Salario <- 150 c. ( ) Salario <- 5.000 d. ( ) X <- (NOME = COR) e. ( ) SOMA + 2 <- NUM f. ( ) DIA <- "seGUNDA" g. ( ) NUM <- "*ABC*" h. ( ) X <- X + 1 i. ( ) COR <- "PRETO" j. ( ) TESTE <- SOMA k. ( ) NUM <- SOMA l. ( ) SOMA <- NUM + 2 * X m. ( ) NOME <- “5”
5. Analise o seguinte algoritmo e descreva o que ele faz.
18
19