Buscar

Variáveis, Tipos de Dados e Estrutura Sequencial

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Variáveis, tipos de dados e estrutura sequencial
Aula 02
Ronaldo dos Santos Kuesley Nascimento
ronaldo.santos@ufms.br kuesley@gmail.com
Campus de Três Lagoas
Universidade Federal de Mato Grosso do Sul
Bacharelado em Sistemas de Informação
Algoritmos e Programação I
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 1 / 35
Recapitulando
Algoritmo é uma sequência finita de instruções para resolver um
problema;
Neste curso estudaremos apenas os algoritmos que podem ser
executados por um computador.
Estes algoritmos devem ser escritos com respeito às seguintes
propriedades:
Definir ações simples, com duração finita e sem ambiguidade;
As ações devem estar ordenadas;
As ações devem estar contidas em uma sequência finita de passos.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 2 / 35
Recapitulando
Os algoritmos são capazes de realizar tarefas como:
Ler e escrever dados;
Avaliar expressões algébricas, relacionais e lógicas;
Tomar decisões com base em valores lógicos;
Desviar o fluxo de execução de suas instruções de acordo com uma
condição.
Mas como fazemos isso?
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 3 / 35
Tipos de dados
O tipo de um dado define o conjunto de valores ao qual o valor do
dado pertence, bem como o conjunto de todas as operações que
podem atuar sobre qualquer valor desse conjunto;
Os tipos de dados podem ser classificados em dois grupos:
Atômicos: são aqueles cujos elementos são indivisíveis;
Complexos: são aqueles cujos elementos podem ser decompostos
em partes mais simples.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 4 / 35
Tipos de dados
Entre os tipos atômicos, os mais comuns são:
Numérico: números inteiros, racionais e irracionais e as operações
aritméticas e relacionais para eles;
Dentre os tipos numéricos distinguiremos os tipos inteiro e real que
incluem, respectivamente, os números inteiros e reais.
Caractere: inclui o alfabeto romano, dígitos entre 0 e 9, caracteres
de pontuação, símbolos de operação aritmética, entre outros;
As operações definidas para este tipo são igualdade e desigualdade;
Os elementos do conjunto de valores do tipo caractere devem ser
escritos, nos algoritmos, entre aspas simples. Por exemplo, ‘a’ e ‘?’.
Lógico: inclui apenas os valores verdadeiro e falso e as operações
lógicas;
Nos algoritmos, estes valores são escritos como V e F .
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 5 / 35
Tipos de dados
Entre os tipos complexos, vamos utilizar inicialmente apenas o tipo
cadeia, cujo conjunto de valores é formado pela concatenação de
valores do tipo caractere (frase);
As cadeias são escritas, nos algoritmos, entre aspas duplas, tal
como “Entre com algum valor: ”.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 6 / 35
Constantes
Uma constante faz o que o nome sugere:
Representa um dado cujo valor não muda durante todo o algoritmo;
Constantes são identificadas dentro de um algoritmo por um identi-
ficador, que deve ser único, e são declaradas da seguinte forma:
defina <identificador> <valor>
Exemplos:
defina PI 3.14159
defina MENSAGEM “A área do círculo é: ”
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 7 / 35
Variáveis
Uma variável pode ser imaginada como um “depósito” para ar-
mazenar valores de dados, para o qual existe um nome, conhecido
como identificador, e cujo conteúdo pode ser alterado pelo algo-
ritmo;
O identificador de uma variável deve ser distinto daquele das demais
variáveis do algoritmo.
Toda variável deve ser declarada antes de ser utilizada;
Ao criarmos uma variável, temos de, explicitamente, associar-lhe
um tipo de dados, determinando o conjunto de valores que ela
pode armazenar e as operações que podem ser aplicadas.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 8 / 35
Variáveis
Para declarar uma variável, segue-se o formato abaixo:
<tipo da variável> <lista de identificadores>
Quando houver mais de um identificador na lista, eles devem ser
separados por vírgula;
Exemplos:
inteiro w
real y , z, x
lógico resp
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 9 / 35
Operador de Atribuição
O ato de atribuir ou copiar um valor para uma variável é conhecido
como atribuição;
Utilizaremos o operador de atribuição (←) como um símbolo para
esta operação;
Exemplos:
inteiro x , y
x ← 4
y ← x + 1
caractere a
a ← ‘z’
a ← ‘8’
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 10 / 35
Comando de Atribuição
Quando um comando de atribuição é executado, o valor do lado
direito do operador de atribuição, que pode ser uma constante,
o conteúdo de uma variável ou o resultado de uma expressão, é
copiado para a variável do lado esquerdo do operador;
Exemplo:
inteiro a, c, x , y , z
a ← 2
c ← 1 + a
x ← a + 2− c
y ← 4
z ← y
O valor à direita de um operador de atribuição deve ser do mesmo
tipo da variável à esquerda de um operador de atribuição;
Há uma excessão que é a atribuição de um valor do tipo real em
uma variável do tipo inteiro, onde apenas a parte inteira do valor
real é copiada para a variável do tipo inteiro.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 11 / 35
Operadores Aritméticos
Os operadores aritméticos básicos são:
Adição (+);
Subtração (−);
Multiplicação (∗);
Divisão (/).
Eles podem ser aplicados a expressões envolvendo valores numéri-
cos quaisquer, não importando se o número é inteiro ou contém
parte fracionária;
Exemplo:
inteiro a, b, c
a + b + c
a− b ∗ c/2
A operação de divisão (/) é a divisão real. Isto é, mesmo que os
operandos sejam números inteiros, o resultado é real.
Existe ainda o operador MOD, que é utilizado para obtermos o
resto de uma divisão inteira;
Exemplo: 5 MOD 2 é igual a 1, o resto da divisão inteira de 5 por 2.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 12 / 35
Precedência de Operadores
A menos que os parênteses indiquem o contrário, as operações de
divisão, multiplicação e MOD são executadas primeiro e na ordem
em que forem encontradas ao lermos a expressão da esquerda
para a direita. Em seguida, temos as operações de adição e sub-
tração;
inteiro a, b, c, x
a ← 2
b ← 3
c ← 4
x ← a + b ∗ c
Este trecho de código armazenará o valor 14 na variável x ;
Se fosse desejado realizar a operação de adição primeiro, o co-
mando de atribuição seria:
x ← (a + b) ∗ c
Os parênteses também podem ocorrer de forma “aninhada”:
((2 + 3)− (1 + 2)) ∗ 3− (3 + (3− 2))
que resulta no valor 2.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 13 / 35
Expressões Relacionais
Uma expressão relacional é uma comparação entre dois valores
do mesmo tipo básico;
Estes valores são representados na relação através de constantes,
variáveis ou expressões aritméticas;
Os operadores relacionais são:
Operador Descrição
= igual a
6= diferente de
> maior que
< menor que
≥ maior ou igual a
≤ menor ou igual a
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 14 / 35
Expressões Relacionais
O resultado da avaliação de uma relação é sempre um valor lógico,
isto é, V ou F ;
Exemplo:
inteiro a, b, c
a ← 2
b ← 3
c ← 4
Então:
a = 2 vale V ;
a > b + c, vale F ;
c ≤ 5− a vale F ;
b 6= 3 vale F .
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 15 / 35
Operadores Lógicos
Uma proposição é qualquer sentença que possa ser avaliada como
verdadeira ou falsa;
Por exemplo, a sentença “a população de Três Lagoas é de 100
mil habitantes” pode ser classificada como verdadeira ou falsa e,
portanto, é uma proposição;
Já a sentença “feche a porta!” não é uma proposição.
No nosso contexto, uma proposição é uma relação, uma variável
e/ou uma constante do tipo lógico.
Quando há mais de uma proposição em uma expressão lógica,
elas estão relacionadas por um operador lógico;
Os operadores lógicos utilizados como conectivos nas expressões
lógicas são os seguintes: E, OU e NÃO.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 16 / 35
Operadores Lógicos
Duas proposições podem ser combinadas pelo conectivoE para
formar uma única proposição denominada conjunção das proposi-
ções originais;
O resultado da conjunção de duas proposições p e q é verdadeiro
se e somente se ambas as proposições são verdadeiras, como
mostrado na tabela a seguir:
p q p E q
V V V
V F F
F V F
F F F
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 17 / 35
Operadores Lógicos
Duas proposições quaisquer podem ser combinadas pelo conec-
tivo OU para formar uma nova proposição que é chamada dis-
junção das duas proposições originais;
A disjunção de duas proposições p e q é verdadeira se e so-
mente se, pelo menos, uma delas for verdadeira, como mostrado
na tabela a seguir:
p q p OU q
V V V
V F V
F V V
F F F
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 18 / 35
Operadores Lógicos
Dada uma proposição p qualquer, uma outra proposição, chamada
negação de p, pode ser formada escrevendo “NÃO” antes de p;
Desta forma, podemos concluir que:
se p é verdadeira, então NÃO p é falsa;
se p é falsa, então NÃO p é verdadeira.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 19 / 35
Precedência entre todas as operações
As operações aritméticas, lógicas e relacionais têm a seguinte pre-
cedência: primeiro as aritméticas, depois as relacionais e por úl-
timo lógicas;
Operador Prioridade
/, ∗, MOD 1 (máxima)
+, − 2
=, 6=, ≤, ≥, <, > 3
NÃO 4
E 5
OU 6 (mínima)
Lembrando que podemos utilizar parênteses para alterar a ordem
natural de avaliação.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 20 / 35
Entrada e Saída
Qualquer algoritmo requer a obtenção de dados do “mundo” (en-
trada) e também um meio de comunicar ao “mundo” o resultado
por ele obtido (saída);
Para tal, existem duas operações, denominadas entrada e saída,
realizadas, respectivamente, pelos operadores leia e escreva;
A forma geral destes operadores é:
leia <lista de variáveis>
escreva <lista de variáveis e/ou constantes e/ou
expressões>
Exemplo:
inteiro x
leia x
escreva x
escreva “O valor de x é: ”, x
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 21 / 35
Exercícios
1. Um algoritmo pode conter um comando como: “Escreva todos os
termos da sequência de Fibonacci”? Justifique.
2. Sendo P, Q e R variáveis do tipo inteiro, cujos conteúdos são
iguais a 2, 3, 12 e , respectivamente, quais os valores fornecidos
por cada uma das expressões aritméticas abaixo?
(a) 100 ∗Q/P + R
(b) P ∗ R MOD 5−Q/2
(c) 10 ∗ 3 + P
(d) 10 ∗ (3 + P)
(e) (10 ∗ 3) + P
(f) (P + 2) ∗ (Q + Q)
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 22 / 35
Exercícios
3. Utilizando o seguinte trecho de algoritmo:
.
.
.
inteiro x , y
real z
leia x
escreva x , “elevado ao cubo = ”, x ∗ x ∗ x
leia y
escreva x + y
z ← x/y
escreva z
z ← z + 1
x ← (y + x)MOD2
escreva x
.
.
.
explique o que está acontecendo em cada linha e qual é o resultado
de cada ação executada considerando que será informado o valor
13 para x e 5 para y .
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 23 / 35
Exercícios
4. Considere as seguintes declarações:
inteiro soma, num, x
cadeia nome, cor , dia
lógico teste, cod , tudo
assinale os comandos considerados inválidos:
(a) nome ← 5
(b) soma ← num + 2 ∗ x
(c) tudo ← soma
(d) cor ← “preto” + ‘A’
(e) x ← x + 1
(f) num ← “*ABC*”
(g) dia ← “Segunda”
(h) soma + 2 ← x ∗ x −√num
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 24 / 35
Exercícios
5 Determine se as expressões abaixo resultam em V ou F :
(a) 2 ∗ 4 = 24/3
(b) 15 MOD 4 < 19 MOD 6
(c) 2 + 8 MOD 7 ≥ 3 ∗ 6− 15
(d) 2 < 5 E 15/3 = 5
(e) 2 < 5 OU 15/3 = 5
(f) NÃO V OU 32/3 < 15− 35 MOD 7
(g) NÃO (5 6= 10/2) OU V E 2− 5 > 5− 2 OU V
(h) 24 6= 4 + 2 OU 2 + 3 ∗ 5/3 MOD 5 < 0
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 25 / 35
Exercícios
6 Determine os resultados obtidos na avaliação das expressões
lógicas seguintes, sabendo que a, b e c contêm, respectivamente,
2, 7 e 3.5, e que existe uma variável lógica l cujo valor é F .
(a) b = a ∗ c E (l OU V )
(b) b > a OU b = aa
(c) l E b/a ≥ c OU NÃO a ≤ C
(d) b/a = c OU b/ac
(e) l OU ba ≤ c ∗ 10 + a ∗ b
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 26 / 35
Estrutura Geral de um Algoritmo
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 27 / 35
Estrutura Geral de um Algoritmo
A seguir são listadas algumas características que encontraremos
nos algoritmos que estudaremos neste curso:
1. A linha de cabeçalho, que é a primeira linha do algoritmo, contém a
palavra-chave algoritmo, seguida por um identificador, que é o nome
escolhido para o algoritmo;
2. A declaração de constantes e variáveis será o próximo passo, sendo
que a declaração de constantes precede a declaração de variáveis;
3. O corpo do algoritmo contém as instruções que fazem parte da des-
crição do algoritmo;
4. A linha final, que é a última linha do algoritmo, contém a palavra
reservada fimalgoritmo para especificar onde o algoritmo termina.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 28 / 35
Estrutura Geral de um Algoritmo
Como exemplo, considere um algoritmo para calcular e escrever a
área de um círculo, dado o raio do círculo:
algoritmo área_do_circulo
defina PI 3.14159
defina MENSAGEM “O valor da área do círculo é: ”
real raio, area
leia raio
area ← PI ∗ raio ∗ raio
escreva MENSAGEM, area
fimalgoritmo
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 29 / 35
Estrutura Geral de um Algoritmo
Temos ainda alguns detalhes que servirão para deixar o algoritmo
mais claro e mais fácil de ler:
Os passos do algoritmo são especificados através da indentação
dos vários comandos entre a linha de cabeçalho e a linha final;
A indentação, visualmente, enquadra o corpo do algoritmo no olho
humano e acaba com a confusão criada por não sabermos onde o
algoritmo começa ou termina;
Ela deve ser aplicada dispondo os elementos hierarquicamente se-
melhantes com a mesma tabulação em relação à margem.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 30 / 35
Estrutura Geral de um Algoritmo
Como exemplo, considere o algoritmo criado para calcular e es-
crever a área de um círculo:
algoritmo área_do_circulo
defina PI 3.14159
defina MENSAGEM “O valor da área do círculo é: ”
real raio, area
leia raio
area ← PI ∗ raio ∗ raio
escreva MENSAGEM, area
fimalgoritmo
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 31 / 35
Estrutura Geral de um Algoritmo
O algoritmo pode conter comentários, que são trechos do algo-
ritmo que não são executados e cujo propósito é apenas o de fa-
cilitar o entendimento;
Os comentários são iniciados com duas barras (“//”) e podem abri-
gar qualquer texto.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 32 / 35
Estrutura Geral de um Algoritmo
Como exemplo, considere o algoritmo criado para calcular e es-
crever a área de um círculo:
// algoritmo para calcular a área do círculo
algoritmo área_do_circulo
// declaração de constantes e variáveis
defina PI 3.14159
defina MENSAGEM “O valor da área do círculo é: ”
real raio, area
leia raio // leitura do raio do círculo
area ← PI ∗ raio ∗ raio // cálculo da área do círculo
// comunicação do resultado
escreva MENSAGEM, area
fimalgoritmo
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 33 / 35
Exercícios
1. Escreva um algoritmo que mostre a mensagem “Olá Mundo”;
2. Escreva um algoritmo que receba um valor inteiro e mostre o qua-
drado deste valor;
3. Escreva um algoritmo que recebe o peso de uma pessoa, em Kg,
e mostra o novo peso se a pessoa engordar 15%;
4. Escreva um algoritmo que receba três notas e mostre a média de-
las;
5. Escreva um algoritmo que receba dois valores inteiros, armazene-
os nas variáveis a e b, troque o valor contido em a com o valor
contido em b e mostre o conteúdo das variáveis a e b;
6. Escreva um algoritmo que lê um número inteiro positivo n com três
dígitos que não contém dígitos zero. O algoritmo deve inverter
e mostrar os dígitos de n. Esse exercício deve ser resolvido uti-
lizando apenas variáveis do tipointeiro.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 34 / 35
Desafio
Escreva um algoritmo que receba dois valores inteiros, armazene-
os nas variáveis a e b, troque o valor contido em a com o valor
contido em b e mostre o conteúdo das variáveis a e b;
Nesse desafio você não pode utilizar qualquer variável além de a e
b. Não vale trocar a e b na hora de ler ou de escrever. O conteúdo
da variável a deve ser efetivamente trocado com o conteúdo da
variável b.
Santos & Nascimento (CPTL/UFMS) Estrutura Sequencial ALGPI 35 / 35

Continue navegando