Algoritmos e lp parte 2-fundamentos

40
Algoritmos e Linguagem de Programação de Programação Professor: Mauro Jansen Parte 2 – Fundamentos (Tipos de dados, variáveis, expressões e operadores) 09/2012

Transcript of Algoritmos e lp parte 2-fundamentos

Page 1: Algoritmos e lp parte 2-fundamentos

Algoritmos e Linguagem de Programação de Programação

Professor: Mauro Jansen

Parte 2 – Fundamentos(Tipos de dados, variáveis, expressões e operadores)

09/2012

Page 2: Algoritmos e lp parte 2-fundamentos

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 2

Page 3: Algoritmos e lp parte 2-fundamentos

Introdução a tipos de dados

� Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória

� Estas informações podem ser classificadas em dois tipos:

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 3

dois tipos:� As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados

� Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador

Page 4: Algoritmos e lp parte 2-fundamentos

Introdução a tipos de dados

� Internamente, essas informações (dados e instruções), ficam registradas na memória na forma binária

� Porém, para facilitar, as linguagens de

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 4

� Porém, para facilitar, as linguagens de programação oferecem a noção de TIPOS DE DADOS, que nos permite manipular as informações de forma mais parecida com o modo como fazemos no mundo real

Page 5: Algoritmos e lp parte 2-fundamentos

Conceito de tipos de dados

� Podemos definir tipos de dados como um conjunto de objetos que têm em comum o mesmo comportamento diante de um conjunto definido de operações

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 5

� Exemplos:� Pessoas� Z (conjunto dos números inteiros)� R (conjunto dos números reais)� Letras

Page 6: Algoritmos e lp parte 2-fundamentos

Tipos de dados básicos

� As linguagens de programação não podem manipular todos os tipos do mundo real e têm os seus próprios tipos de dados

� Os tipos de dados básicos são:Numéricos (somente números)

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 6

� Numéricos (somente números)� Inteiro� Real

� Literais (letras números ou símbolos)� Caractere� String

� Lógicos ou Booleanos

Page 7: Algoritmos e lp parte 2-fundamentos

Tipos de dados básicos

Tipos de Dados

Numérico Literal Lógico

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 7

� OBS: Além dos tipos básicos, as linguagens podem oferecer variações dos mesmos ou outros tipos como Data, Hora, etc.

inteiro real caractere String

Page 8: Algoritmos e lp parte 2-fundamentos

Dados numéricos� São dados numéricos que podem ser usados em operações aritméticas. Subtipos:� Inteiros: que não possuem parte fracionária e podem ser positivos ou negativos.

� 10 (número inteiro positivo)

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 8

� 10 (número inteiro positivo)� -9 (número inteiro negativo)� 0 (número inteiro)

� Reais: que podem possuir parte fracionária e podem ser positivos ou negativos.

� 15.05 (número real positivo com duas casas decimais)

� -15. (número real negativo sem casas decimais)

Page 9: Algoritmos e lp parte 2-fundamentos

Dados literais� Podem ser seqüências de letras, dígitos ou símbolos especiais. Subtipos:� Caractere: um único caractere:

� ‘a’� ‘7’� ‘@’

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 9

� ‘@’

� Cadeia de Caracteres (string): conjunto de caracteres formando uma palavra, frase ou parágrafo:

� “Algoritmos”� “Algoritmos e Linguagem de Programação”� “*** Projeto Cara Limpa (anti-drogas) ***”

� Normalmente ficam entre aspas simples (caractere) ou duplas (string)

Page 10: Algoritmos e lp parte 2-fundamentos

Dados lógicos

� Também chamados booleanos, devido à Álgebra de Boole

� Só possuem dois valores possíveis:� Verdadeiro ou Falso

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 10

� Normalmente são resultados de testes de expressões lógicas e servirão de condição para execução de uma ou mais instruções

Page 11: Algoritmos e lp parte 2-fundamentos

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 11

Page 12: Algoritmos e lp parte 2-fundamentos

� “Uma variável é um local na memória principal, isto é, um endereço que armazena um conteúdo”

(LOPES E GARCIA, 2002)

“Podemos imaginar uma variável como o nome

Conceito de variável

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 12

� “Podemos imaginar uma variável como o nome de um local onde se pode colocar qualquer valor do conjunto de valores possíveis do tipo básico associado”.

(GUIMARÃES E LAGES, 1994)

Page 13: Algoritmos e lp parte 2-fundamentos

� Basicamente, uma variável possui três atributos:� um nome (ou identificador)� um tipo de dado associado à mesma

tipo dedado

Características de uma variável

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 13

mesma� e o dado (valor) por ela guardado.

� Todas as variáveis utilizadas na elaboração de um programa devem ser declaradas.

Nome da variável

valor

Page 14: Algoritmos e lp parte 2-fundamentos

Memória RAM

Declaração de variáveis� Declarar uma variável corresponde à criação de um local na memória rotulado com o nome da variável (identificador) e marcado com o tipo de valores que ela pode conter:

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 14

Memória RAMtipo dedado

Nome da variável

valor

Nome da variável

valor

Nome da variável

valor

tipo dedado

Page 15: Algoritmos e lp parte 2-fundamentos

Declaração de variáveis: sintaxe� Sintaxe: existem duas formas básicas para declaração de variáveis em pseudocódigos:� Com o tipo após o(s) nome(s) das variável(is):

Var <nome da variável 1>[,<nome da variável 2>,...]: <tipo1>;

<nome da variável 3>[,<nome da variável 4>,...]: <tipo2>;

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 15

� Com o tipo antes do nome da(s) variável(is):

� Exemplos:Var nome, endereco: string;

salario, aumento: real;

<tipo1> <nome da variável 1>[,<nome da variável 2>,...];

<tipo2> <nome da variável 3>[,<nome da variável 4>,...]:

String nome, endereco;

Real salario, aumento;

Page 16: Algoritmos e lp parte 2-fundamentos

� Como identificar os tipos de dados

Inteiro – int ou integerReal – real, float ou doubleLiteral – char (caractere) ou string (cadeia de caracteres)Lógico – boolean ou lógico

Declaração de variáveis: regras

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 16

� Exemplosint valor;real salario, taxa;char opcao;

Lógico – boolean ou lógico

Variáveis do mesmo tipo podem ser declaradas juntas, bastando separar os identificadores por vírgula.

Page 17: Algoritmos e lp parte 2-fundamentos

� Regras para a Formação de Identificadores (nomes de variáveis):� O primeiro caractere do nome deve ser uma letra.

� Se houver mais de um caractere, só se deve usar letra ou algarismo.

Declaração de variáveis: regras

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 17

letra ou algarismo.� Há diferença em usar letras maiúsculas e minúsculas.

� Não usar palavras que sejam reservadas Às Linguagens de Programação.

� Devemos dar nomes representativos para as variáveis.

Page 18: Algoritmos e lp parte 2-fundamentos

� Declarações Válidas� int quantidade� real precodevenda� int Quantidadestring nome

Variáveis diferentes, pois

uma usa letra maiúscula

Declaração de variáveis: exemplos

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 18

� string nome

� Declarações Inválidas� real preço de venda� int 2numero� string nomeloj@

Não devemos usar cedilha

nem espaço.

Não devemos iniciar o

identificador com algarismo

Não devemos utilizar

caracteres especiais

Page 19: Algoritmos e lp parte 2-fundamentos

Exercícios de fixação� O que é um tipo de dado?� Quais são os tipos de dados básicos? Cite exemplos de dados de cada tipo.

� Diga qual o tipo de cada dado abaixo:� “Linguagem de programação”123.75

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 19

� 123.75� “A”� -72� 3 > 2� “12345”� VERDADEIRO� “01/01/2010”

Page 20: Algoritmos e lp parte 2-fundamentos

Exercícios de fixação

� O que é uma variável?� Quais os atributos de uma variável?� O que é declarar uma variável?� Quais as regras para criação do nome de

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 20

� Quais as regras para criação do nome de uma variável?

� Dê um exemplo de declaração de variável em cada tipo de dados básico.

Page 21: Algoritmos e lp parte 2-fundamentos

Exercícios de fixação� Dados os nomes de variáveis abaixo, indique quais são válidos e quais são inválidos:� VALOR� X2� 3 X 4� XYZ� “NOTA”

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 21

� “NOTA”� SALÁRIO-LÍQUIDO� NOTA*DO*ALUNO� MARIA� NOMEDAESCOLA� AH!� A1B2C3� KM/H

Page 22: Algoritmos e lp parte 2-fundamentos

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 22

Page 23: Algoritmos e lp parte 2-fundamentos

Expressão� Combinação de operandos (valores ouvariáveis), operadores, e chamadas de funções que são interpretadas (avaliadas) de acordo com as regras de precedência e de associatividade particulares a uma determinada linguagem de programação, que calcula e, em seguida, produz (retorna) um valor

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 23

linguagem de programação, que calcula e, em seguida, produz (retorna) um valor

� Exemplos:� 2+2 (expressão aritmética)� “Algoritmos “+” e Programação” (expressão literal)� 5 > 3 (expressão lógica)� Salario * reajuste / 100 (expressão aritmética usando variáveis)

Page 24: Algoritmos e lp parte 2-fundamentos

� Operandos são valores ou variáveis de um dos tipos de dados

Operadores são elementos que atuam sobre operandos e produzem um resultado.

Operadores

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 24

tipos de dados� Exemplo

� 5 + 3� Operandos: 5 e 3� Operador: +� Resultado: 8

Page 25: Algoritmos e lp parte 2-fundamentos

� Operadores Unários: atuam sobre um único operando.

� Exemplo: -2

Operadores Binários: atuam sobre dois

Tipos de operadores

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 25

� Operadores Binários: atuam sobre dois operandos.

� Exemplo: 3 + 6

Page 26: Algoritmos e lp parte 2-fundamentos

� Produzem como resultado um tipo de dado numérico.

� Utilizam operadores aritméticos e variáveis numéricas.Operadores aritméticos:

Expressões aritméticas

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 26

� Operadores aritméticos:

Page 27: Algoritmos e lp parte 2-fundamentos

� Produzem como resultado um valor lógico (.Verdadeiro. ou .Falso.).

� Fundamentam-se na Lógica Matemática.

Expressões lógicas

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 27

� Conceito de Proposição

Uma proposição ou sentença é qualquer oração que Uma proposição ou sentença é qualquer oração que Uma proposição ou sentença é qualquer oração que Uma proposição ou sentença é qualquer oração que pode ser avaliada como verdadeira ou falsa.pode ser avaliada como verdadeira ou falsa.pode ser avaliada como verdadeira ou falsa.pode ser avaliada como verdadeira ou falsa.

Page 28: Algoritmos e lp parte 2-fundamentos

� Exemplos de Proposições� São Luís é a capital do Maranhão.� A Lua é feita de queijo.� 2 é um número par.� 5 – 3 = 0.

Expressões lógicas: exemplos e princípios

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 28

� 5 – 3 = 0.

� Regras Fundamentais da Lógica Matemática� Princípio da não contradição: uma proposição não pode ser verdadeira e falsa ao mesmo tempo.

� Princípio do terceiro excluído: uma proposição sempre assume um valor (verdadeiro ou falso)

Page 29: Algoritmos e lp parte 2-fundamentos

� Tipos de Proposições� Proposições Simples ou Atômicas

� Não é possível decompô-las� Cinco é menor que dez.

� Proposições Compostas ou Moleculares

Expressões lógicas: tipos

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 29

� Proposições Compostas ou Moleculares� Formadas por duas ou mais proposições simples ligadas por meio de conectivos lógicos.

São cinco os conectivos lógicos:São cinco os conectivos lógicos:São cinco os conectivos lógicos:São cinco os conectivos lógicos:

E E E E –––– OU OU OU OU –––– NÃO NÃO NÃO NÃO –––– SE ... ENTÃO SE ... ENTÃO SE ... ENTÃO SE ... ENTÃO –––– SE, E SOMENTE SESE, E SOMENTE SESE, E SOMENTE SESE, E SOMENTE SE

Page 30: Algoritmos e lp parte 2-fundamentos

� Exemplos de Proposições Compostas

1. Pelé é brasileiro EEEE Maradona é Argentino.2. Vou à praia OUOUOUOU ao cinema.3.3.3.3. SESESESE eu estudar, ENTÃOENTÃOENTÃOENTÃO serei aprovado em

Proposições compostas

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 30

3.3.3.3. SESESESE eu estudar, ENTÃOENTÃOENTÃOENTÃO serei aprovado em Programação.

4. Serei aprovado em Programação SE, E SOMENTE SE, E SOMENTE SE, E SOMENTE SE, E SOMENTE SESESESE, eu estudar.

Page 31: Algoritmos e lp parte 2-fundamentos

� Cada conectivo lógico está associado a uma operação lógica.

� Negação: usa o operador NÃO para modificar uma proposição, invertendo seu valor lógico.A representação desta operação na tabela verdade

Operador lógico de negação (NÃO)

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 31

� A representação desta operação na tabela verdade é a seguinte:

p NÃO p

V FF V

Page 32: Algoritmos e lp parte 2-fundamentos

� Conjunção: Com o uso do conectivo E é possível ligar duas proposições, formando uma nova proposição chamada conjunção, cujo valor lógico é a verdade quando ambas as proposições que a compõe forem verdadeiras.

Operador lógico de conjunção (E)

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 32

que a compõe forem verdadeiras.

a b a E bV V VV F FF V FF F F

Page 33: Algoritmos e lp parte 2-fundamentos

� Disjunção: Com o uso do conectivo OU é possível ligar duas proposições, formando uma nova proposição chamada disjunção, cujo valor lógico é a falsidade quando ambas as proposições que a compõe forem falsas.

Operador lógico de disjunção (OU)

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 33

proposições que a compõe forem falsas.

a b a OU bV V VV F VF V VF F F

Page 34: Algoritmos e lp parte 2-fundamentos

� Tabela Demonstrativa dos Operadores Lógicos

Resumo dos operadores lógicos

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 34

Page 35: Algoritmos e lp parte 2-fundamentos

� Usados quando se deseja efetuar comparações.

� Produzem como resultado um dos valores lógicos.

Operadores relacionais

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 35

Page 36: Algoritmos e lp parte 2-fundamentos

Funções

� Funções são sub-programas existentes nas linguagens de programação que recebem dados, efetuam operações com os mesmos e retornam um resultado

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 36

� Podem ser usadas em expressões� Tipos de funções:

� Matemáticas (retornam valor numérico)� Literais (retornam valor literal)� Lógicas (retornam valor lógico)

Page 37: Algoritmos e lp parte 2-fundamentos

Funções

� Toda função tem um nome (identificador) seguido de “(“, dos parâmetros separados por vírgula e “)”

� Exemplos:Função Resultado fornecido

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 37

Função Resultado fornecido

RAIZ(<número>) Raiz quadrada

EXP(<base>,<expoente>) Potenciação

ABS(<número>) Valor absoluto do número

RESTO(<a>,<b>) Resto da divisão a / b

TRUNCA(<n>) ou INT(<n>) Parte inteira do número real n

LOG(<n>) Logarítmo na base 10 de n

Page 38: Algoritmos e lp parte 2-fundamentos

� Toda expressão respeita a ordem de execução de seus operadores, sempre da esquerda para a direita.

Prioridade dos operadores

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 38

Page 39: Algoritmos e lp parte 2-fundamentos

Exercícios de fixação� Sabendo que X=2, Y=5, diga o tipo e resultado das seguintes expressões:� 3 ** X + 10 / 2 – 3� X = Y� 7+Y > X * 2� Y > X

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 39

� Y > X� Crie a expressão aritmética para calcular:

� Média de quatro notas (n1, n2, n3 e n4)� Valor do delta, X’ e X’’, em uma equação do 2º grau, em função das variáveis a, b e c

� Retornar somente a parte fracionária de um número real N

Page 40: Algoritmos e lp parte 2-fundamentos

Exercícios de fixação

� Dadas as variáveis A=3, B=16, NOME=“MARIA”, PROFISSAO=“ADVOGADO” e TESTE=FALSO, avalie as expressões:� A+1 >= RAIZ(B) OU NOME=“ANA”� A+1 >= RAIZ(B) E PROFISSAO=“MEDICO”

Prof. MauroAlgoritmos e Ling.de Programação

Fundamentos 40

� A+1 >= RAIZ(B) E PROFISSAO=“MEDICO”� NOME<>”ANA” OU PROFISSAO=“MEDICO” E A+1>RAIZ(B)

� INT(A/B) + 2