Você está na página 1de 81

ICC

Prof. Msc. Adelaine Brandão Soares


Universidade Federal do Pará (UFPA)
Roteiro
2.3. Expressões
a) Forma geral: operando operador operando;
b) Expressões: aritméticas, relacionais e lógicas;
c) Funções embutidas;
d) Prioridade dos operadores
2.4. Operações
e) Atribuição e conversão de tipo;
b) Especificação de tipo;
c) Entrada e Saída;
d) Controle: seleção e repetição.
2.5. Arrays.
2.6. Subalgaritmos:
f) Função
g) b) Procedimentos.
OPERADORES

Os operadores são meios pelos quais incrementamos, comparamos e


avaliamos dados dentro do computador.
 Operadores são elementos fundamentais que atuam sobre operandos
e produzem um determinado resultado.
Por exemplo, a expressão 3 + 2 relaciona dois operandos (os números 3 e 2) por meio do
operador (+) que representa a operação de adição.
De acordo com o número de operandos os operadores podem ser
classificados em: Binários ou Unários
Binários: quando atuam sobre dois operandos. Esta operação é
chamada diádica.
Ex.: os operadores das operações aritméticas básicas (soma, subtração, multiplicação e
divisão).

Unários: quando atuam sobre um único operando. Esta operação é


chamada monádica.
Ex.: o sinal de menos (-) na frente de um número, cuja função é inverter seu sinal.
Outra classificação dos operadores é feita considerando o tipo de dado de
seus operandos e do valor resultante de sua avaliação.

Segundo esta classificação, os operandos dividem-se em aritméticos, lógicos


e literais. Esta divisão está diretamente relacionada ao tipo de expressão
onde aparecem os operadores.

Um caso especial é o dos operadores relacionais, que permite comparar


pares de operandos de tipos de dados iguais, resultando sempre num valor
lógico.
Operadores de atribuição
Um operador de atribuição serve para atribuir um valor a uma variável.
Em Algoritmo usamos o operador de atribuição: =
A sintaxe de um comando de atribuição é:
NomedaVariável = expressão
A expressão localizada no lado direito do sinal de igual é avaliada e
armazenado o valor resultante na variável à esquerda. O nome da
variável aparece sempre sozinho, no lado esquerdo do sinal de igual
deste comando.
Operadores aritméticos
Os operadores aritméticos relacionam as operações aritméticas básicas, conforme a
tabela a seguir:

A prioridade entre operadores define a ordem em que devem ser avaliados dentro de
uma mesma expressão.
Operadores relacionais
Os operadores relacionais são operadores binários que devolvem os valores lógicos
“verdadeiro e falso”.

Estes valores são usados somente quando se deseja efetuar comparações.


Comparações só podem ser feitas entre objetos de mesma natureza, isto é, variáveis
do mesmo tipo de dado. O resultado de uma comparação é sempre um valor lógico,
por exemplo, digamos que a variável inteira escolha contenha o valor 7. A primeira das
expressões a seguir fornece um valor falso, e a segunda um valor verdadeiro: escolha
<= 5 escolha > 5
O quadro a seguir apresenta mais alguns exemplos de operadores relacionais:

Com valores string, os operadores relacionais comparam os valores ASCII dos


caracteres correspondentes em cada string. Uma string é dita "menor que" outra se os
caracteres correspondentes tiverem os números de códigos ASCII menores.
Operadores lógicos
Os operadores lógicos ou booleanos são usados para combinar expressões
relacionais. Também devolvem como resultado valores lógicos verdadeiro ou falso.
Uma expressão relacional ou lógica retornará falso para o valor lógico falso, resultante
de uma expressão, e verdadeiro para o valor lógico verdade.
Fornecendo dois valores ou expressões lógicas, representadas por expressão1 e
expressão2, podemos descrever as quatro operações lógicas a seguir:
a) expressão1 E expressão2 é verdadeiro somente se ambas, forem verdadeiras. Se
uma for falsa, ou se ambas forem falsas, a operação também será falsa.
b) expressão1 OU expressão2 é verdadeiro se tanto a expressão1 como a expressão2
forem verdadeiras, isto é, se uma delas for verdadeira.
c) As operações OU só resultam em valores falsos se ambas, expressão1 e
expressão2, forem falsas.
d) NÃO expressão1 avalia verdadeiro se expressão1 for falsa; de modo contrário, a
expressão NÃO resultará em falso, se expressão1 for verdadeira.
A tabela a seguir apresenta mais alguns exemplos de operadores
lógicos:
Operadores literais
Os operadores que atuam sobre caracteres variam muito de uma
linguagem para outra. O operador mais comum e mais usado é o
operador que faz a concatenação de strings: toma-se duas strings e
acrescenta-se (concatenase) a segunda ao final da primeira.
O operador que faz esta operação é: +
Por exemplo, a concatenação das strings “ALGO” e “RITMO” é
representada por: “ALGO” + ”RITMO” O resultado de sua avaliação é:
“ALGORITMO”
EXPRESSÕES
Uma expressão em um programa é a parte da instrução que produz um valor,
normalmente através do uso de operandos (valores) e operadores (indicam a
operação a ser realizada).
Expressões executam ações específicas, baseadas em um operador com um ou dois
operandos. Um operando pode ser uma constante, uma variável ou um resultado de
função. Os operadores são aritméticos, lógicos e relacionais.
O conceito de expressão em termos computacionais está intimamente ligado ao
conceito de expressão ou fórmula matemática, em que um conjunto de variáveis e
constantes numéricas relacionam-se por meio de operadores aritméticos compondo
uma fórmula que, uma vez avaliada, resulta num valor.
EXPRESSÕES ARITMÉTICAS
Expressões aritméticas são aquelas cujo resultado da avaliação é do
tipo numérico, seja ele inteiro ou real. Somente o uso de operadores
aritméticos, variáveis numéricas e parênteses é permitido em
expressões deste tipo.

Exemplo: 5 x 4 + 2 = 20 + 2 = 22.
Expressões lógicas

Expressões lógicas são aquelas cujo resultado da avaliação é um valor


lógico verdadeiro ou falso. Nestas expressões são usados os
operadores relacionais e os operadores lógicos, podendo ainda serem
combinados com expressões aritméticas. Quando forem combinadas
duas ou mais expressões que utilizem operadores relacionais e
lógicos, os mesmos devem utilizar os parênteses para indicar a ordem
de precedência.
Expressões literais

Expressões literais são aquelas cujo resultado da avaliação é um valor


literal (caractere).
Neste tipo de expressões só é usado o operador de literais (+).
Avaliação de expressões
Expressões que apresentam apenas um operador podem ser avaliadas
diretamente. No entanto, à medida que as elas vão se tornando mais
complexas com o aparecimento de mais de um operando na mesma
expressão é necessária a avaliação passo a passo, tomando um
operador por vez. A sequência destes passos é definida de acordo com
o formato geral da expressão, considerando-se a prioridade
(precedência) de avaliação de seus operadores e a existência ou não
de parênteses.
As seguintes regras são essenciais para a correta avaliação de expressões:
1. Deve-se observar a prioridade dos operadores, conforme mostrado nas
tabelas de operadores: Operadores de maior prioridade devem ser avaliados
primeiro. Se houver empate com relação à precedência, então a avaliação
se faz da esquerda para a direita.
2. Os parênteses usados em expressões têm o poder de “roubar” prioridade
dos demais operadores, forçando a avaliação da subexpressão em seu
interior.
3. Entre os quatro grupos de operadores existentes, a saber, aritmético, lógico,
literal e relacional, há uma certa prioridade de avaliação: os aritméticos e
literais devem ser avaliados primeiro; a seguir, são avaliadas as
subexpressões com operadores relacionais e, por último os operadores
lógicos são avaliados.
Expressões podem ser constituídas pela associação de diversas variáveis de
tipos não necessariamente compatíveis, mas que se arranjem de forma lógica
e avaliável.
Uma vez definidas tais expressões, a avaliação implica num processo
sistemático que finaliza num valor final cujo tipo dependerá da expressão.
Por exemplo, na expressão, x+1 > y-p*p, resolvem-se primeiramente as
expressões aritméticas em cada lado do operador relacional para depois fazer
a comparação que resultará num valor lógico.
Este procedimento de escolha de “quem operar primeiro” numa expressão
segue na verdade dois conjuntos de regras de operadores. São eles o de
precedência de operadores e de associatividade de operadores. Os
analisaremos a seguir.
Precedência de operadores
Nas primeiras lições sobre matemática ensina-se que numa expressão numérica
primeiramente devem-se fazer as divisões e multiplicações para por fim fazer as
adições e subtrações.
Ensina-se também que se existem componentes entre parênteses elas são prioritárias
na ordem de resolução. Sem tais regras uma expressão como, 2+4*7, seria ambígua,
ou seja, com duas possibilidades de resposta dependo de qual operação fosse
realizada em primeiro lugar.
Esta predefinição de quem opera primeiramente numa família de operadores é
comumente chamada de precedência de operadores.
A ordem convencional de precedência dos operadores aritméticos, do de maior
para o de menor, é a seguinte: (maior precedência) abs +, – (unários) *, /, mod,
div (menor precedência) +, - (binários) A precedência convencional dos
operadores lógicos é a seguinte: (maior precedência) ¬ ∧ ∨ (menor
precedência) ⊕ Por exemplo, na expressão, A ⊕ B ∧ ¬ C, o booleano C é
primeiro invertido, depois a conjunção entre este valor e B é feita; por fim a
disjunção exclusiva fecha o processo de avaliação e um valor final lógico é
obtido. Convencionalmente não existe precedência entre operadores
relacionais, o que será mais bem compreendido na sessão seguinte.
Associatividade de operadores
Permitir a associatividade de operadores significa permitir que dois operadores de
uma mesma família (aritmético, relacional ou lógico) e de mesma precedência
apareçam adjacentes em uma mesma expressão sem afetar operabilidade.
 Por exemplo, na expressão, A + B - C, quem deve ser feita primeira? Adição ou
subtração? A forma usual de resolver a associatividade é definindo um sentido fixo de
avaliação; por exemplo, da direita para a esquerda (no exemplo anterior a subtração
seria então feita primeiro).
A associatividade nem sempre é possível. Para que dois operadores possam ser
associados o tipo da saída do operador deve ser do mesmo tipo dos operandos, do
contrário ocorrerá inconsistência.
Por exemplo, a avaliação da expressão, A + B - C, da esquerda para a direita, possui o
seguinte esquema: A+B-C +- + Cada redução na resolução acima transforma um par
de números num novo número que entra na etapa seguinte da avaliação.
De uma forma geral, operadores aritméticos são sempre associáveis. O mesmo não
acontece na expressão, A > B > C, onde A, B e C são inteiros. O processo de avaliação
desta expressão, da esquerda para direita, é interrompido por uma inconsistência,
como se vê a seguir: A>B>C > > > //inconsistência! Não pode continuar Este exemplo
demonstra a ausência de associatividade entre operadores relacionais e
consequentemente a inexistência de precedência entre eles. A associatividade entre
operadores lógicos funciona similarmente aos operadores aritméticos.
Estruturas de controle
Existem dois mecanismos construtivos que qualquer método de
elaboração de algoritmos deve possuir: decisão e repetição. O conjunto
de componentes de código que se associam para representar um
processo de decisão ou de repetição é denominado estrutura de
controle. Sem tais estruturas não seria possível a construção de
algoritmos.
Decisão
Um processo de decisão consiste na escolha entre dois ou mais blocos de
pseudocódigo para execução. Apenas um, entre os blocos existentes, é selecionado e
assim tem seu conteúdo executado. Uma decisão é o resultado da avaliação de uma
expressão booleana. Adiante são estudados diferentes tipos de estruturas de decisão.
a) Decisão unidirecional
A decisão unidirecional é aquela que envolve apenas um bloco de código. Se a
expressão de controle da decisão é avaliada como verdadeira, então o código do único
bloco é executado. Do contrário, se a expressão resulta em falso, ocorre um desvio
para a próxima instrução fora do bloco (caso exista).
b)Decisão bidirecional
Na decisão bidirecional dois blocos de pseudocódigo competem para que um deles, e
apenas um, seja executado. Caso a expressão booleana de controle seja avaliada
como Verdadeira, então o primeiro bloco de pseudocódigo será executado, do contrário
o segundo bloco que o será.
c) Decisão múltipla: é um processo de decisão que envolve muitas entradas, ou seja,
entre várias rotas possíveis de código será escolhida uma, e apenas uma, para ser
executada. Devido à natureza binária das expressões booleanas, elas não se aplicam
em processos da decisão múltipla.
Ao invés disso é utilizada uma expressão aritmética com valor resultante inteiro
(usualmente expressões de controle aparecem como uma única variável de tipo inteiro
conhecida como variável de controle).
Espera-se naturalmente da expressão de controle que o valor proveniente da avaliação
esteja numa faixa finita de valores inteiros. Cada um destes valores deve conduzir ao
seu próprio bloco de código. Se a avaliação resulta um valor fora da faixa então
nenhum bloco é executado e o processo de decisão encerrado. Blocos em decisões
múltiplas precisam de um rótulo para indicar onde principiam. O rótulo deve conter o
valor inteiro esperado pela avaliação da expressão de controle que induza a execução
do bloco que rotula
Repetição
As estruturas de decisão permitem a modelagem de apenas parte dos problemas
resolvidos por algoritmos.
As estruturas de controle de repetição estendem largamente esta capacidade de
modelagem. Elas fornecem meios de repetição de execução de blocos de códigos
específicos.
Uma estrutura de controle de repetição encapsula apenas um bloco de código e o
repete mediante um critério que notavelmente muda durante o processo
(Naturalmente este bloco pode conter internamente outros blocos com nível de
indentação acima e que também terão execução repetida).
Cada repetição é conhecida como iteração. Estruturas de repetição são comumente
chamadas de laços ou loops.
Laços controlados por teste

Cada iteração de um laço está associada a um teste que será responsável pela
finalização ou continuação deste. Nos laços com contador este teste está embutido
na própria estrutura: ele consiste em verificar se o contador já alcançou ou
ultrapassou o limite superior. Há, entretanto laços onde tais testes são explícitos e
aparecem como expressões booleanas.
Há dois tipos importantes de laços com teste: de pré-teste e de pós-teste. Os Laços
de pré-teste são aqueles que no começo de cada iteração realizam um teste para
determinar sua continuidade. A estrutura de controle para pré-teste é, enquanto...faça,
e possui sintaxe geral como segue: enquanto faça.
Antes de cada iteração a expressão booleana à entrada é avaliada. Se seu valor for
Verdadeiro significa que a próxima iteração deverá ocorrer do contrário o laço deverá
encerrar-se. Nenhuma instrução do bloco é executada se na primeira avaliação o
resultado for Falso.
Aninhamento de laços
Aninhar laços significa encapsular laços dentro de outros. Se um laço A é
encapsulado por um laço B então para cada iteração de B o laço A efetuará
sistematicamente todas suas possíveis iterações naquele contexto.
Por exemplo: declare i, j: inteiro para i ← 1 até 10 faça para j ← 1 até 10 faça escreva
i+j Os dois laços no algoritmo anterior são construídos para executar 10 vezes cada.
O primeiro tem contador em i e o segundo contador em j. Entretanto o primeiro lado
encapsula o segundo laço (posto um nível de indentação acima). Isso faz com que
cada iteração do primeiro laço execute todas as 10 iterações do segundo laço e
consequentemente execute 100 vezes a instrução escreva (posta um nível de
indentação acima do segundo laço).
Quebra e continuação de laços
Um laço controlado por teste é denominado laço infinito quando a expressão
booleana de controle é sempre avaliada como Verdadeira (no caso de
enquanto...faça) ou sempre como Falsa (no caso de repita...até). Laços infinitos são
aplicados em situações onde o critério de parada não se encaixa na entrada (ou na
saída) do laço. Quando instruções internas ao bloco de laço promovem sua
suspensão forçada (sem uso da expressão booleana de controle) diz-se que houve
quebra de laço. Uma quebra de laço é construída utilizando o comando pare.
Array

Estruturas de dados que consistem em itens de dados do mesmo tipo


relacionados.
Permanecem com o mesmo tamanho depois de criados.
Um Array: – É um grupo de variáveis (elementos ou componentes) que
contém valores que são todos do mesmo tipo. – É um objeto, daí ser
considerado tipo por referência,
Índice:
Também chamado subscrito.
Número de posição entre colchetes.
Deve ser inteiro positivo ou expressão de inteiro.
Primeiro elemento tem o índice zero:
a = 5;
b = 6;
c[ a + b ] += 2;
Adiciona 2 a c[ 11 ].
Examinando o array c

c é o nome do array.
c.length acessa o comprimento do array c.
 c tem 12 elementos (c[0], c[1], … c [11])
O valor de c[0] é – 45.
Declarando e criando arrays:
Arrays são objetos que ocupam memória.
São criados dinamicamente com a palavra-chave new:
int c[] = new int[ 12 ];
Equivalente a:
int c[]; // declara a variável
array
c = new int[ 12 ]; // cria o array
Também podemos criar arrays de objetos:
String b[] = new String[ 100 ];
14/06/2023
Subalgaritmos

Subalgoritmo é um algoritmo que, geralmente, resolve um pequeno


problema, e que está subordinado a um outro algoritmo.
Esta subordinação deve-se ao fato de que o subalgoritmo só será
acionado se solicitado pelo algoritmo principal.
É possível que um subalgoritmo chame outro subalgoritmo.
Em resumo

Os subalgoritmos são importantes:


na subdivisão de algoritmos complexos, facilitando o seu
entendimento;
na estruturação de algoritmos, facilitando, principalmente, a detecção
de erros e a documentação de sistemas;
na modularização de sistemas, que facilita a manutenção de
softwares e reutilização de subalgoritmos já implementados.
ELEMENTOS DE UM SUBALGORITMO
A definição de um subalgoritmo consta de:
- cabeçalho, onde estão definidos o nome e o tipo do subalgoritmo, bem como os seus
parâmetros e suas variáveis locais;
- corpo do subalgoritmo, onde se encontram as instruções, que serão executadas cada
vez que ele é chamado.
- O nome de um subalgoritmo é um nome simbólico pelo qual ele é chamado por outro
algoritmo.
- As variáveis locais são aquelas definidas dentro do próprio subalgoritmo e só podem
ser utilizadas pelo mesmo.
- Os parâmetros são canais por onde os dados são transferidos pelo algoritmo
chamador a um subalgoritmo, e vice-versa.
O tipo de um subalgoritmo é definido em função do número de valores que o
subalgoritmo retorna ao algoritmo que o chamou.
Os subalgoritmos podem ser de dois tipos:
 as funções, que retornam um, e somente um valor ao algoritmo chamador;
 os procedimentos, que retornam vários valores, ou nenhum, ao algoritmo chamador.

14/06/2023
FUNÇÕES
O conceito de funções é originário da idéia de função matemática, onde
um valor é calculado a partir de outro(s) valor(es) fornecido(s) à função.
Forma geral de uma função (sintaxe):
14/06/2023
PROCEDIMENTOS
Um procedimento é um subalgoritmo que retorna vários valores, ou nenhum, ao
programa principal, ou a outro subalgoritmo que o chame.
Estes valores são sempre retornados por meio dos parâmetros, e nunca explicitamente
como no caso das funções que usa a instrução Retorne.
Forma geral de um procedimento (sintaxe):
Dúvidas?
Exercite - Expressões Numéricas
Primeira bateria
1) 2 + 8 – 3 – 5 + 15 =
2) 12 + [35 - (10 + 2) +2] =
3) [(18 + 3 · 2) ÷ 8 + 5 · 3] ÷ 6 =
4) 37 + [-25 – (-11 + 19 – 4)] =
5) 60 ÷ {2 · [-7 + 18 ÷ (-3 + 12)]} – [7 · (-3) – 18 ÷ (-2) + 1] =
6) -8 + {-5 + [(8 – 12) + (13 + 12)] – 10} =
7) 3 – {2 + (11 – 15) – [5 + (-3 + 1)] + 8} =
8) [-1 + (22 – 5 · 6)] ÷ (-5 + 2) + 1 =
9) [ – (2 4 – 8) · 2 – 24] ÷ [2 2 – (-3 + 2)] =
10) {[(8 · 4 + 3) ÷ 7 + (3 + 15 ÷ 5) · 3] · 2 – (19 – 7) ÷ 6} · 2 + 12 =
Resolução 1ª bateria
1) 17
2) 37
3) 3
4) 8
5) 5
6) -2
7) 0
8) 10
9) -6
10) 100
04/05/2023
Como fazer um churrasco?

O que tem o churrasco com a nossa aula?? Trata-se de uma sequência


de passos para execução de um objetivo.

EXERCÍCIO: descrever as etapas para fazer um bom churrasco.


O que é um algoritmo?

Um ALGORITMO pode ser visto como uma sequência de


instruções ou operações que resolvem um dado problema.

A receita de um bom churrasco corresponde a um algoritmo.


Como representar um algoritmo?
Uma forma é representar na forma textual ordenada:
1.Comprar a carne
2.Colocar carvão na churrasqueira
3.Acender o carvão
4.Cortar a carne (picanha)
5.Espetar a carne
6.Salgar a carne
7.Colocar a carne na churrasqueira
8.Aguardar a carne ficar no ponto desejado
9.Bater a carne
10.Servir a carne
Como representar um algoritmo?

Outras formas são mais apropriadas para o uso no meio computacional:


• pseudocódigos
• fluxogramas

A PENSAR: É possível mudar a ordem das instruções? É possível


paralelizar algumas instruções?
E para quem são os algoritmos?
Uma receita de bolo é apropriada para ser executada por um ser
humano. Um procedimento de como trocar um pneu também. Mas
muitas vezes queremos que o algoritmo seja executado por uma
máquina! O computador é perfeito para isto!

Um PROGRAMA implementa um algoritmo. E é o algoritmo


materializado na forma de uma sequência de instruções.
Praticando

1.Descreva com detalhes a sequência lógica para trocar um


pneu de um carro.
1.Pare em um local seguro. ...
2.Pegue o triângulo e sinalize a via atrás do veículo. ...
3.Localize o estepe, macaco e chave de roda. ...
4.Afrouxe os parafusos. ...
5.Levante o veículo. ...
6.Solte os parafusos e troque os pneus.
A Descrição de Algoritmos usando Fluxogramas

Um fluxograma é uma linguagem semi-gráfica que pode ser utilizada


para descrição de algoritmos.
 Ponto forte: Permite fácil entendimento do algoritmo, mesmo para
pessoas leigas.
Ponto fraco: A descrição das estrutura dos dados inexiste. O usuário
deve descrevê-los à parte.
Neste caso, os dados LIDOS serão ARMAZENADOS em áreas de
"memória" específicas rotuladas por um nome. São as "variáveis".
Observe no exemplo anterior que nada é dito sobre as variáveis NUM1,
NUM2 e MEDIA.
Símbolos de um Fluxograma
Exemplo: O algoritmo de cálculo da média de dois números
Dados
Elemento ou quantidade conhecida, que serve de base à resolução de
um problema; princípio em que assenta uma discussão; elemento ou
base para a formação de um juízo [de Holanda Ferreira, 1986];

Representação em uma linguagem precisa e formalizada de alguns


fatos ou conceitos, frequentemente valores numéricos ou alfabéticos,
de uma forma tal que possam ser manipulados por um método
computacional [Knuth, 1997].
TIPO DE DADOS
Os tipos de dados podem variar de uma linguagem para outra.
• Tipos Numéricos
• Tipos Não Numéricos
DADOS NUMÉRICOS
Os Tipos de Dados Numéricos são divididos basicamente em dois grandes conjuntos:
• Inteiros • Reais •
Inteiro
Consiste dos números inteiros e das operações de adição, subtração, multiplicação,
divisão inteira e resto. Na linguagem Portugol, os números inteiros são escritos
apenas como a concatenação dos dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9, tal como em 5, 100
e 1678. Números negativos são representados com o sinal “−” na frente do número,
tal como −23.
Exemplos
24 - número inteiro positivo
0 - número inteiro
-12 - número inteiro negativo
Real
Consiste dos números reais e das operações de adição, subtração, multiplicação,
divisão. Na linguagem Portugol, os números reais são caracterizados por possuírem
uma parte inteira e uma parte fracionária.
Os reais podem ser positivos, negativos ou nulos, e possuem sempre um
componente decimal;
Exemplos:
2,34
0,0
-214,123
Exemplos de dados inteiros
 Número de pessoas;
Um número par ou ímpar;
Idade de uma pessoa;
Quantidade de objetos;

Exemplos de dados reais


Peso
Altura
DADOS NÃO NUMÉRICOS
Caracter
formado pelas letras (de A - Z, e de a - z), dígitos (de 0 a 9) e caracteres especiais
(~, ., ?, >, <,...)
A diferença entre caracteres e dados numéricos estão na forma de armazenamento,
e nas operações legais permitidas sobre os mesmos;
Objetos declarados como do tipo caractere poderão armazenar um único caractere;
Para armazenar uma sequência de caracteres será utilizada a estrutura cadeia de
caracteres, que consiste num tipo de dado estruturado
Exemplo: ‘Z’ é um caractere; ‘ANA’ é uma cadeia de caracteres;
DADOS NÃO NUMÉRICOS
Lógico (booleanos)
Os valores lógicos podem assumir uma entre duas possibilidades (verdadeiro ou
falso; sim ou não; 0/1; true/false);
 Só poderá armazenar um destes dois valores;
Muito utilizados em controle do fluxo lógico do algoritmo;
Exemplo: V - valor lógico verdadeiro e F - valor lógico falso
Variáveis
Armazenamento de dados na memória
A todo momento durante a execução de qualquer tipo de programa os computadores
estão manipulando informações representadas pelos diferentes tipos de dados
descritos anteriormente.
Para que não se "esqueça" das informações, o computador precisa guardá-las em
sua memória volátil.
Conceito e Utilidade de Variáveis
Uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a
informação por ela guardada.
Uma variável é um item de dados nomeado cujo valor pode ser alterado durante a
execução do programa.
As variáveis podem ser globais ou locais.
Um nome de variável deve necessariamente começar com uma letra;
Um nome de variável não deve conter nenhum símbolo especial exceto a sublinha “_”.

SALARIO = correto
1ANO = errado
A CASA = errado (contém o caractere espaço em branco)
SAL/HORA = errado (contém o caractere "/”)
SAL_HORA = correto
_DESCONTO = errado (não começou com uma letra)
Definição de variáveis em algoritmos
Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem
utilizadas.
Isto se faz necessário para permitir que o compilador reserve um espaço na memória
para as mesmas.
Sintaxe:

– a palavra-chave VAR deverá estar presente sempre e será utilizada uma única vez na
definição de um conjunto de uma ou mais variáveis;
Exemplo de definição de variáveis em algoritmos

◦ VAR NOME : caractere


◦ IDADE : inteiro
◦ SALARIO: real
◦ TEM_FILHOS: lógico
Síntese
A memória dos computadores é composta por células numeradas ordenadamente
denominadas bytes. Cada byte é constituído por 8 bits.
Cada tipo de dado requer um número diferente de bytes para armazenar a
informação representada por ele na memória. Esta quantidade também pode variar
em função do tipo de computador considerado.
Uma variável é uma entidade dotada de um nome para diferenciá-la das demais e um
tipo de dado que define o tipo de informação que ela é capaz de guardar. Uma vez
definidos, o nome e o tipo de uma variável não podem ser alterados no decorrer de
um programa. Por outro lado, a informação útil da variável é objeto de constante
modificação durante o decorrer do programa, de acordo com o fluxo de execução do
mesmo.
FIXAÇÃO
light

1. Classifique os dados especificados abaixo de acordo com seu tipo, assinalando


com I os dados do tipo inteiro, com R os reais, com C os caracteres, com B os
lógicos (booleanos), e com N aqueles para os quais não é possível definir a priori
um tipo de dado.
CONSTANTES
Uma constante é uma variável!! Sim, é uma variável no sentido de que uma constante
também reserva um espaço de memória para o tipo de dado que manipulará.
Entretanto, uma constante armazenará um valor ÚNICO, um valor que NÃO mudará
com o tempo de execução do programa.
Exemplo: número PI, que é um valor fixo de aproximadamente 3.14.
As constantes são:
NULL - Uma referência vazia. Semelhante a um ponteiro vazio. Observe que não é igual
a uma cadeia nula "".
TRUE - Equivalente ao número 1.
FALSE - Equivalente ao número 0.
LEMBRE-SE...

Constantes e Variáveis são espaços de memória reservados para o


tipo de dados que você deseja trabalhar. CONSTANTES são valores
fixos que você utilizará em seu programa e VARIÁVEIS são valores
que precisam variar durante o tempo de execução do seu programa.
Nomes de variáveis e constantes

Nós sempre precisaremos declarar variáveis em nossos programas.


Então, declarar variável é um termo importante em computação. Outro
termo relevante é o IDENTIFICADOR. Um identificador é o nome que
damos às nossas variáveis.

A sintaxe de declaração pode ser diferente para muitas linguagens de


programação. Por exemplo, em Java fazemos assim: String nome, em
que STRING é um TIPO DE DADO e NOME é o nome da variável, ou seja,
o seu IDENTIFICADOR.
Algumas linguagens também aceitam letras minúsculas e maiúsculas,
outras só minúsculas, é o que chamamos de sensitive case. Java, por
exemplo, é uma linguagem sensitive case, isto é, aceita que você defina
nomes de variáveis com letras maiúsculas e minúsculas.

Uma dica que dou para vocês é que procurem dar nomes de variáveis
o mais próximo possível do problema que estão resolvendo. Por
exemplo, se você vai calcular a área de um triangulo, dê os nomes das
variáveis iguais aos definidos na geometria  A = (b * h) / 2. Use b e h
para obter os valores de altura e largura, e A para armazenar o
resultado da operação matemática.
Dúvidas?
Fixação
1) Quais dos seguintes nomes de variáveis são INVÁLIDOS ? Por quê ?
a. Int
b. alfa_beta_rotina
c. char f
d. 6_05
e. _1312
f. _var1
g. Reinicializa
h. Xs
i. A$
j. z

2) Elaborar um fluxograma para somar dois números e multiplicar o resultado desta soma pelo
primeiro número.

3) Criar o fluxograma para calcular a média de um aluno e mostrar o status do mesmo.


Média => 6.0; Status ← “Aprovado”;
Média < 6.0; Status ← “Reprovado”;

Você também pode gostar