CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES



Documentos relacionados
Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Algoritmos Computacionais ( Programas )

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Algoritmos e Programação de Computadores

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Lógica de Programação

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Orientação a Objetos

Dadas a base e a altura de um triangulo, determinar sua área.

Introdução aos cálculos de datas

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Conceitos Importantes:

Introdução à Lógica de Programação

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

ULA Sinais de Controle enviados pela UC

2. Representação Numérica

Aula 2 Modelo Simplificado de Computador

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Resolução de problemas e desenvolvimento de algoritmos

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

23/02/ NOME João CPF SALARIO 3000,00 VARIÁVEL VARIÁVEIS

Algoritmos e Programação _ Departamento de Informática

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Algoritmo e Programação

Linguagem algorítmica: Portugol

3. Tipos de Dados, Constantes e Variáveis.

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Só Matemática O seu portal matemático FUNÇÕES

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.

1. Sistemas de numeração

Matemática Financeira RECORDANDO CONCEITOS

REVISÃO E AVALIAÇÃO DA MATEMÁTICA

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Componentes da linguagem C++

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

Algoritmos e Estrutura de Dados III. Árvores

Organização e Arquitetura de Computadores I

Excel Planilhas Eletrônicas

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

2. ENTRADA DE DADOS 2.1. TEXTOS

1. Introdução ao uso da calculadora

Microsoft Excel 2007

Introdução a Algoritmos Parte 04

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Aritmética Binária e. Bernardo Nunes Gonçalves

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Disciplina: Unidade III: Prof.: Período:

Exemplo de Subtração Binária

Projeto e Desenvolvimento de Algoritmos

Internet e Programação Web

e à Linguagem de Programação Python

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Algoritmos com VisuAlg

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Sistemas de Numerações.

Estruturas de Controle A Tomada de Decisões

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.

Resumo da Matéria de Linguagem de Programação. Linguagem C

Prof. Dr. Iron Macêdo Dantas

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

PROGRAMAÇÃO II 4. ÁRVORE

Tópico 2. Conversão de Unidades e Notação Científica

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Unidade 5: Sistemas de Representação

MATERIAL MATEMÁTICA I

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Engenharia de Software III

indicadas por letras e linhas, indicadas por números. Para selecionar uma planilha para uso, devemos utilizar a guia de planilhas:

PC Fundamentos Revisão 4

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

INE Fundamentos de Matemática Discreta para a Computação

Lição 1 - Criação de campos calculados em consultas

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Características do PHP. Começando a programar

PERGUNTAS MAIS FREQÜENTES FEITAS PELO ALUNO. 1. O que são as Atividades Complementares de Ensino do NED-ED?

Sociedade Brasileira de Matemática Mestrado Profissional em Matemática em Rede Nacional. n=1

SISTEMAS DE NUMERAÇÃO

ARQUITETURA DE COMPUTADORES

Entendendo como funciona o NAT

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Aula Teórica 12. Material Didático Proposto

Terceiro Milênio Informática

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Transcrição:

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução: atribua o valor 2 ao objeto valor; O valor 2 fica associado ao objeto valor. Assim, cada vez que mencionamos o nome do objeto valor, nós estaremos referenciando, implicitamente, ao valor que foi associado a ele. Isto torna o algoritmo mais prático, pois além de ser fácil lembrarmos de um nome do que de um valor de dado, o nome de um objeto permanece inalterada durante toda a execução de um algoritmo, ao passo que o valor a ele associado pode mudar com o dinamismo do algoritmo, como por exemplo: objetos x, y; início das ações: fim das ações. atribua 3 ao objeto x; calcule 2 x e atribua o resultado ao objeto y; calcule 4 y e atribua o resultado ao objeto x; Note que os valores de x e y variam no decorrer da execução do algoritmo. O objeto x começa com o valor 3 e termina com o valor 24, e o y começa com um valor não definido e termina com 6. Note que não nos preocupa a variação de valores dos objetos, pois eles continuam a ter o mesmo nome. Por este motivo, dizemos que os objetos de um algoritmo identificam valores a eles associados, e por isto, estes objetos são chamados de identificadores. Como os nossos algoritmos têm como finalidade a comunicação do homem com a máquina (computador), podemos dizer, de uma forma grosseira, que um identificador do algoritmo será associado com uma célula de memória do computador, a qual armazenará o valor associado ao identificador. E toda vez que mencionamos o nome do identificador no algoritmo, o computador irá "buscar", na célula de memória associada com o identificador, o valor armazenado e realizará a operação descrita no algoritmo. Existe uma certa semelhança entre identificadores e variáveis matemáticas, logo é comum, em literaturas do gênero computacional encontrar, também, esta denominação para os identificadores. Mas queremos deixar claro que esta analogia nem sempre é possível, pois, considere a seguinte expressão matemática: x = x + 1. Esta expressão matemática não tem solução, pois qual é o número que é igual a ele mesmo somado em uma unidade.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 39 Já computacionalmente está expressão é válida, pois o significado semântico é diferente, o qual é: Calcule a expressão x + 1 e atribua o resultado a x; Para o computador, isto significa: recupere o valor que está armazenado na célula x some uma unidade e armazene o resultado na própria célula x. É importante deixar claro que um identificador (objeto) só pode armazenar um único valor por vez. E sempre armazenará o último valor que lhe for fornecido. Assim, se fizermos o identificador x receber o valor 100, e logo mais adiante atribuirmos ao mesmo identificador x o valor 50, a partir deste ponto o valor associado a x será 50. Você deverá escolher os nomes dos identificadores que serão utilizados, mas devendo respeitar as seguintes regras na escolha dos nomes: 1) Use somente letras e números na escolha dos nomes; 2) O primeiro caractere do nome deve ser sempre uma letra; 3) Não é permitido o uso de qualquer caractere especial (;,, -, +, é, á,.,?, espaço em branco) no nome de identificador. Exemplos de identificadores válidos: ImpostoDeRenda, F1, soma, produto, desconto, SalarioHora Exemplos de identificadores não válidos: 1 f não começa com uma letra Imposto-renda tem caractere especial "-" no nome do identificador salário hora espaço em branco no nome do identificador Obs.: Procure sempre adotar nomes de identificadores curtos mas que se relacionem com as funções que eles irão representar no decorrer do algoritmo, será muito mais fácil de lembrar dos identificadores e para que eles servem. Um exemplo, para representar o número de matrícula de um funcionário de uma empresa, você poderia escolher qualquer identificador, como x1, xurt23,..., mas seria muito mais esclarecedor e de bom gosto adotar um nome de identificador NumeroFuncionário, ou simplesmente NumFunc. No conceito de identificador de dado estão associadas quatro características (figura 3.1): o seu nome, o seu tipo, endereço da célula de memória do computador associado ao identificador e o valor armazenado na célula de memória. Nome nome do identificador conteúdo (valor armazenado na célula de memória ) célula de memória Figura 3.1 - Atributos de um identificador.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 40 O tipo do identificador especifica uma classe de valores que podem ser armazenados na célula de memória associada ao identificador, além de definir quais são as operações legais que poderão ser usadas para criar, acessar e modificar o conteúdo da célula de memória, isto é, supondo que na célula esteja armazenado um número, poderemos fazer uma operação de subtração com um outro número, mas se for uma letra, a operação de subtração não pode ser feita. 3.2 - IDENTIFICADOR E O TIPO DO DADO ARMAZENADO Um identificador, como já vimos, armazena um único valor de dado por vez. Mas, será que ele pode armazenar qualquer dado? Os dados podem ter estruturas físicas diferentes na representação do seu valor. Vejamos, como exemplo. Os valores: 1 1,00 0,1 x 10 + 1 representam a mesma grandeza, mas possuem estruturas de organização diferentes. Observe que estamos tratando somente com dados numéricos. Caso, resolvamos envolver outros tipos de dados (como dados caracteres, dados lógicos, dados cadeias de caracteres, entre outros) teríamos estruturas completamente diferentes. As células de memória do computador precisam ser compatível com o tipo da estrutura do dado que ela irá armazenar, e como vimos estas estruturas variam com o tipo dado. Isto quer dizer que, precisamos informar ao computador quais serão as células de memória que serão utilizadas e qual o tipo de dado que será armazenado na mesma. A informação do tipo do dado armazenado na célula de memória tem outra função, que é a de definir quais serão as operações válidas que poderão ser aplicadas sobre o dado armazenado. Por exemplo: Se o dado for numérico podemos fazer operações aritméticas (adição, subtração, multiplicação, divisão e exponenciação). Caso, o dado seja uma cadeia de caracteres, poderemos efetuar uma operação de concatenação (juntar dois textos, armazenados em duas células de memória distintas em uma única célula de memória). Os tipos de dados são classificados em dois grandes grupos: os tipos simples (ou primitivos) e os tipos estruturados (capítulo 8). Os dados do tipo simples (figura 3.2) se subdividem em conjuntos específicos, como ilustra a árvore a seguir.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 41 Tipos de dados simples numérico caractere lógico inteiro real Figura 3.2 - Representação dos tipos de dados simples. 3.2.1 - Tipo de dados numéricos A princípio, podemos admitir a existência de dois grandes conjuntos de natureza numérica: o conjunto dos números reais e o conjunto dos números inteiros. Com exceção do conjunto dos números complexos, os outros (naturais, fracionários) são subconjunto dos conjuntos dos inteiros e reais, respectivamente. Os números complexos não serão abrangidos no contexto deste trabalho. 3.2.1.1 - Inteiros Os números inteiros podem ser positivos, negativos ou nulos e não possuem um componente decimal. Na notação matemática em forma de conjunto, poderíamos ter a seguinte representação: Z = {..., -2, -1, 0, 1, 2,...}. Matematicamente, os números inteiros são compatíveis com os números reais, pois o conjunto dos reais contém o conjunto dos inteiros. Mas, a recíproca não é verdadeira, pois, nem todo número real é um inteiro, mas todo inteiro é um real. Adotaremos aqui, esta definição matemática. Todo identificador definido como real poderá receber um valor inteiro, mas os identificadores inteiros nunca poderão receber um valor real, mesmo que a parte fracionária do mesmo seja nula. Identificadores que forem deste tipo serão declarados como sendo do tipo inteiro. 3.2.1.2 - Reais Os números podem ser positivos, negativos ou nulos, e possuem, sempre, um componente decimal. Exemplificando alguns números reais: 2,34-3,14 0,0 34,0-214,123 224x10 +1 1000x10-4 Computacionalmente, existem muitas diferenças na forma de armazenamento de números inteiros e reais. Geralmente, valores inteiros exigem um espaço de memória menor do que os reais.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 42 Identificadores que forem deste tipo serão declarados como sendo do tipo real. 3.2.2 - Tipos de dados não numéricos Os tipos simples não numéricos representam os conjuntos dos caracteres e dos valores lógicos (ou booleanos). 3.2.2.1 - Caractere O conjunto dos caracteres são formados por letras (de A a Z), dígitos (de 0 a 9) e caracteres especiais (~,.,?, >, <,...). As diferenças entre dados numéricos e caracteres estão na forma de armazenamento e nas operações legais que podem manipular dados. Podemos fazer operações aritméticas com os dados numéricos, mas estas operações não são permitidas para os caracteres. Para diferenciar um dado numérico e um identificador de um caractere, utilizaremos sempre o dado caractere entre apóstrofes ( ). Assim poderíamos ter: 8 é numérico '8' é caractere A é um identificador 'A' é um caractere Identificadores que forem deste tipo serão declarados como sendo do tipo caractere. Identificadores que forem declaradas como sendo do tipo caractere poderão armazenar um único caractere. Para armazenar uma seqüência de caracteres, criaremos a estrutura cadeia de caracteres, a qual, consideraremos aqui como sendo um tipo de dado estruturado, e por ser mais complexa a estudaremos mais adiante. Mas para diferenciar a duas estruturas, eis um exemplo: 3.2.2.2 - Lógicos Z é um caractere ANA é uma cadeia de caracteres O conjunto dos valores lógicos é formado, unicamente por duas possibilidades (falso e verdadeiro). Isto que dizer que, qualquer identificador que for declarado como sendo deste tipo, só poderá armazenar um destes valores. Os dados do tipo lógico são muito utilizados para controle do fluxo lógico do algoritmo. Os únicos operadores que podem manipular dados deste tipo são os operadores relacionais (<>, <, =,...) e os operadores lógicos (E, OU, NÃO), os quais serão inseridos posteriormente. Identificadores que forem deste tipo serão declarados como sendo do tipo booleano ou lógico.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 43 3.3 - DECLARAÇÃO DO TIPO DO IDENTIFICADOR A declaração do tipo do identificador deve ser feita na seção de declaração dos objetos que serão utilizadas no algoritmo. Esta declaração deve ser feita com a seguinte sintaxe: objetos identificador : tipo; Caso haja mais de um identificador com o mesmo tipo no mesmo algoritmo, poderemos declará-los da seguinte forma: objetos identificador1, identificador2, identificador3: tipo; Supondo que em um algoritmo, tenhamos os identificadores i1, i2 e i3 do tipo inteiro e c1, c2 do tipo caractere e b do tipo booleano e r do tipo real, teríamos a seguinte declaração dos tipos dos objetos: objetos i1, i2, i3 cl, c2 b r : inteiro; : caractere; : booleano; : real; Uma das dificuldades de definição de tipo de um identificador ocorre quando temos que declará-lo como sendo de um tipo numérico, pois o mesmo poderá ser do tipo real ou inteiro. A priori, não existe um receituário para a escolha do tipo do identificador. O próprio problema, ou o caminho escolhido para a sua solução é que permitirá a escolha do tipo do identificador. Mas enxergaremos isto somente se, estivermos devidamente afinados com a solução do problema, isto é, devemos conhecer profundamente a solução do problema, suas limitações e restrições. Exemplo de números inteiros: número de pessoas convidadas para uma festa; um número par ou ímpar; um número primo; idade de uma pessoa (geralmente é tratada como inteiro); quantidade de mercadorias em estoque. Exemplos de números reais: o peso de uma pessoa (em Kg); percentual; nota de uma avaliação; média aritmética; preço de um produto.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 44 Existem situações em que podemos ficar em dúvida quanto ao tipo de resultado esperado em uma expressão, como por exemplo: a raiz quadrada de um número inteiro a divisão entre dois números inteiros Se quisermos calcular a raiz quadrada de 4, matematicamente, podemos admitir que o resultado é do tipo inteiro, mas se calcularmos a raiz quadrada de 5, o resultado obtido será do tipo real. Logo, qual deverá ser a tipo do identificador que receberá o resultado desta expressão? Quando houver alguma possibilidade do resultado de uma expressão ser do tipo real, o identificador que receberá o resultado da mesma deverá ser sempre do tipo real, pois os inteiros estão contidos nos reais, assim, se atribuirmos um valor inteiro a um identificador real nenhum erro ocorrerá, mas a recíproca não é verdadeira. Exemplo: Dados dois números inteiros, diferentes de zero, faça um algoritmo que calcule a razão entre os mesmos. ae (n1, n2); as (razão); objetos n1, n2 : inteiro; razão : real; inicio das ações: conheça dois valores inteiros diferentes de zero e atribua-os a n1 e a n2, respectivamente; calcule a expressão n1/n2 e atribua o resultado ao identificador razão; informe o valor armazenado no identificador razão; fim das ações. 3.4 - VALORES DOS DADOS Os dados são os valores que serão armazenados em células de memória e que poderão ser acessados por referência aos identificadores, respectivos, associados com estas células. Assim, se tivermos os identificadores i, r, c e b como sendo inteiro, real, caractere e booleano, respectivamente, e atribuirmos a estes identificadores os valores de dados 100; 3,14, 'Z' e falso, teríamos a seguinte configuração: i r c b 100 3,14 Z falso Se executarmos a ação informe o valor de r o resultado obtido será 3,14, pois este valor está associado com o identificador r. Assim, qualquer referência que fizermos a um identificador, estaremos, implicitamente, nos referenciando ao valor do dado associado ao mesmo.