280 likes | 465 Views
Profa. Mercedes Gonzales Márquez. Algoritmos e Estruturas de Dados I – Tipos de dados. Dados. Os algoritmos irão manipular dados, que normalmente são fornecidos pelos usuários, e entregar resultados para estes usuários.
E N D
Profa. Mercedes Gonzales Márquez Algoritmos e Estruturas de Dados I – Tipos de dados
Dados Os algoritmos irão manipular dados, que normalmente são fornecidos pelos usuários, e entregar resultados para estes usuários. Uma pergunta importante neste momento é: que tipo de dados poderemos manipular? As linguagens de programação estabelecem regras precisas para definir que tipos de dados irão manipular.
Dados A representação por pseudo-código, que será adotada nesta matéria, também estabelece, ainda que informalmente, algumas regras que limitam o conjunto de dados existentes na natureza e que poderão ser manipulados pelos algoritmos. Existem três tipos básicos de dados que a linguagem irá manipular: Dados numéricos Dados literais ou alfa-numéricos Dados Lógicos
Dados (1) Dados Numéricos: Dois tipos: inteiros e reais O conjunto dos dados inteiros pode ser definido como Z={...,-3,-2,0,1,2,...}. O conjunto dos números reais inclui o conjunto dos números inteiros, dos números fracionários e dos números irracionais. O conjunto dos números fracionários pode ser formalmente definido como Q={p/q | p,q pertencem a Z}. O conjunto dos números irracionais engloba aqueles que não podem ser representados por uma fração, por exemplo o número PI=3.141515...
Dados (1) Inteiro Exemplos: a) 15 b) -1 (2) Real Exemplos: a) 3,141592; b) -0,91 • Os números irracionais são armazenados até um certo número de casas decimais que o computador consegue representar a partir daí as casas decimais são descartadas.
Dados (2) Dados literais ou alfa-numéricos Dados literais servem para tratamento de textos e normalmente são compostos por uma seqüência de caracteres contendo letras, algarismos e caracteres de pontuação. Nos algoritmos são normalmente representados por uma seqüência de caracteres entre aspas, por exemplo: (a) “JOSÉ GONÇALVES” b) “12345” c) “x1y2w3” d) “*A!B:-” e) “23/03/10” f) “falso”
Dados (3) Dados Lógicos Os dados lógicos ou também chamados booleanos somente podem assumir dois valores: verdadeiro e falso. Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores. Portanto, este tipo de dados é intensamente aplicado durante o processo de tomada de decisões que o computador frequentemente é obrigado a fazer.
Variáveis Uma entidade destinada a guardar um dado cujo valor pode variar ao longo do tempo durante a execução do algoritmo. A cada variável corresponde uma posição na memória. Ela assume somente um valor de cada vez. Toda variável é identificada por um nome ou identificador.
Variáveis - Identificadores O identificador escolhido para rotular as variáveis deve obedecer as seguintes regras - O primeiro caractere deve ser uma letra - Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto: {A,B,...,X,Y,W,Z,0,1,...,8,9,_} Utiliza-se nomes de variáveis elucidativos. Exemplo se a variável vai armazenar o nome de um empregado, deve-se usar o identificador nome para representá-la.
Variáveis - Declaração As variáveis também são classificadas como numéricas, lógicas e literais. Para indicar o tipo de uma variável é usada a declaração de variáveis. Quando se declara uma variável é feita uma associação do identificador com a respectiva posição de memória que este vai simbolizar.
Variáveis - Declaração Uma vez declarada a variável, qualquer referência que se faça ao seu identificador implica a referência ao conteúdo do local da memória representado pelo mesmo.
Variáveis – Sintaxe da declaração tipo_dado : identificador_da_variável Exemplos: Real: x,y,z,w Inteiro: num_alunos Literal: nome_aluno Logico: sim
Variáveis – Operadores aritméticos Além de limitar o conjunto de dados, a declaração de tipos define o conjunto de operadores que podem agir sobre a variável. Operadores aritméticos:
Operadores aritméticos - Prioridades 1º prioridade : Exponenciação 2º prioridade : Divisão, multiplicação 3º prioridade : Adição, subtração
Operadores relacionais O resultado obtido de uma relação é sempre um valor lógico. Exemplos: (a) A<>B (b) nome=“Maria” (c) B**2-4*A*C<0
Operadores relacionais Dadas as variáveis numéricas x,y,z e as variáveis literais NOME e COR, observar os resultados obtidos para as relações a partir dos valores atribuídos a estas variáveis.
Operadores relacionais Dadas as variáveis numéricas A e B, e as variáveis literais NOME e PROFISSÃO, completar o quadro a seguir.
Operadores lógicos - e A conjunção de duas proposições p e q representa-se por: p e q e é verdadeira se e somente se ambas as proposições são verdadeiras.
Operadores lógicos - e Sejam as seguintes proposições p: ok, onde ok é uma variável lógica cujo conteúdo é verdadeiro q: A=0, onde o valor de A é 3. r: teste, onde teste é uma variável lógica cujo conteúdo é falso. s: B<>1, onde o conteúdo de B é 2 Qual é o valor lógico das conjunções (a) p e s (b) p e r (c) q e s (d) q e r
Operadores lógicos - ou A disjunção de duas proposições p e q representa-se por: p ou q e é verdadeira se e somente se, pelo menos, uma delas for verdadeira.
Operadores lógicos - ou Para as quatro proposições do exemplo anterior qual será o valor lógico das disjunções: • p ou s (b) p ou r (c) q ou s (d) q ou r
Operadores lógicos - não O operador negação (não) atribui o valor lógico falso a uma proposição com valor verdade, e o valor lógico verdade a uma proposição com valor falso. Assim
Operadores - Prioridades 1º prioridade : aritmético 2º prioridade : relacional 3º prioridade : não 4º prioridade : e 5º prioridade : ou
Funções primitivas • Representa uma operação exercida sobre um valor para obter como resultado um valor numérico. • Assumiremos que as funções da tabela estão disponíveis no nosso computador hipotético
Operadores - Prioridades nas expressões mistas 1º prioridade : parênteses mais internos 2º prioridade : funções 3º prioridade : potências e raízes 4º prioridade : divisão e multiplicação 5º prioridade : adições e subtrações 6º prioridade : operadores relacionais 7º prioridade : operador lógico não 8º prioridade : operador lógico e 9º prioridade : operador lógico ou
Expressões mistas Exercícios de fixação 1.5.5.1. e 1.5.5.2. do livro Algoritmos Estruturados de Harry Farrer e outros.