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



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

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

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

Algoritmos e Programação de Computadores

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer?

Segue-se o estudo da forma como os computadores armazenam e acedem às informações contidas na sua memória.

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

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

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

Resolução de problemas e desenvolvimento de algoritmos

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

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

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

Algoritmo e Lógica de Programação Algoritmos Parte 1

Exemplo de Subtração Binária

Algoritmos Computacionais ( Programas )

Projeto e Desenvolvimento de Algoritmos

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

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

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

Capítulo 2: Introdução à Linguagem C

Introdução aos cálculos de datas

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

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

PC Fundamentos Revisão 4

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

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

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

3 Sistemas de Numeração:

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

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

Genericamente qualquer sistema de numeração pode ser caracterizado por:

e à Linguagem de Programação Python

INF 1005 Programação I

Sistemas de Numeração

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

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

Algoritmos com VisuAlg

Aula 3 - Sistemas de Numeração

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

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

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

Algoritmos e Estrutura de Dados I

Hardware de Computadores

Hardware Básico. - Conceitos Básicos - Números Binários - Principais Componentes. Professor: Wanderson Dantas

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

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

Sintaxe Básica de Java Parte 1

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Conceitos Importantes:

Sistemas de Numerações.

for Information Interchange.

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

LÓGICA DE PROGRAMAÇÃO

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Lógica de Programação

Algoritmo e Programação

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

ESTRUTURA CONDICIONAL

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Programação: Tipos, Variáveis e Expressões

Introdução à Programação

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

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

05/04/2013. Para efetuar medidas é necessário fazer uma padronização, escolhendo unidades para cada grandeza.

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Laboratório de Programação I

Programação Elementar de Computadores Jurandy Soares

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

Programação de Computadores

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Computador. Algumas definições

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Componentes da linguagem C++

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

OPERADORES E ESTRUTURAS DE CONTROLE

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

Programação de Computadores

Figura 1 - O computador

I n f o r m á t i c a

Módulo III. Folhas de Cálculo

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

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

Linguagens de programação

ARQUITETURA DE COMPUTADORES

Programas simples em C

1. Sistemas de numeração

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 4 PROF. MARCELO LUIZ SILVA (R E D)

Lista de Exercícios Sistemas de Numeração

SISTEMAS DE UNIDADES DO COMPUTADOR

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba

Jaime Evaristo Sérgio Crespo. Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA)

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Informática Sistemas de Numeração. Profª. Me. Valéria Espíndola Lessa

Contextualização: Sistemas de Computação

Transcrição:

5 TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. De um modo geral estas informações podem ser classificadas em dois tipos: Instruções - que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados dos dados. Dados - que correspondem à porção das informações a serem processadas pelo computador. 5.1 CLASSIFICAÇÃO DOS DADOS DE ACORDO COM O TIPO 5.1.1 Dados Numéricos Conjunto dos números naturais representados por N; N = {0,1,2,3,4,5...} Conjunto dos números inteiros (Z); Z = {...,-4,-3,-2,-1,0,1,2,3,4,...} Conjunto dos números fracionários (Q); Q = {p/q p,q pertencem a Z} Conjunto dos números reais (R); Professor: Ivo Mário Mathias 16

Do ponto de vista do computacional (algorítmico) os dados numéricos representáveis num computador são divididos em apenas duas classes: inteiros e reais. 5.1.2 Dados Literais (Alfanuméricos) Constituído por uma sequência de caracteres contendo letras, dígitos e/ou símbolos especiais. Este tipo de dados é também chamado de alfanumérico, cadeia (ou cordão) de caracteres ou ainda do inglês string. Usualmente, os dados literais são representados nos algoritmos e nas linguagens de programação pela coleção de caracteres, delimitada em seu início e termino com o caracter aspas (") ou aspas simples - plicas ('). O comprimento ou tamanho de um dado literal é dado pelo número de caracteres nele contido (inclusive espaços em branco). 5.1.3 Dados Lógicos A existência deste tipo de dado de certo modo é um reflexo da maneira como os computadores funcionam. São também chamados de booleanos, em função da significativa contribuição BOOLE à área da lógica matemática. São usados para representar dois únicos valores lógicos possíveis: Verdadeiro/Falso - Sim/Não - 1/0 - True/False. Exemplo de representação a ser adotada nos algoritmos:.v. - valor lógico verdadeiro;.f. - valor lógico falso; Professor: Ivo Mário Mathias 17

5.1.4 Resumo 6 VARIÁVEIS Uma variável é uma posição nomeada de memória, que é usada para guardar um valor que pode ser modificado pelo programa. A todo o momento durante a execução de um programa os computadores estão manipulando informações representadas pelos diferentes tipos de dados. Para que não se "esqueça" das informações, o computador precisa guardá-las em sua memória. 6.1 REPRESENTAÇÃO DA INFORMAÇÃO 6.1.1 Bit Unidade básica da informação é o BIT (BInary digit), é a porção de informação fornecida por um verdadeiro ou falso, uma resposta sim/não, como uma chave liga/desliga, simbolicamente os dígitos 0 e 1 são utilizados. 6.1.2 Byte (octeto) BYTE (BinarY TErm), constituído por um conjunto de oito bits. Desta forma é possível representar 256 (2 8 ) combinações diferentes. 6.1.3 Nybble Meio byte, constituído por 4 bits. Professor: Ivo Mário Mathias 18

6.1.4 Kilobyte (KByte) Um kbyte equivale a 1024 octetos ou bytes (8192 bits). O fato de corresponder a 1024 e não a 1000 se deve a que 1 kbyte é igual a 2 10 (base do sistema binário elevada a décima potência); além disso, essa correspondência faz com que o kbyte seja múltiplo de 8. 6.1.5 Megabyte (MByte) Equivale a 1.048.576 de bytes (octetos), ou seja 2 20 (base do sistema binário elevada a vigésima potência), para representação de grande volume de memória. 6.1.6 Gigabyte (GByte) Equivale a 1.073.741.824 bytes - 2 30 (base do sistema binário elevada a trigésima potência). 6.1.7 Terabyte (TByte) Equivale a 1.099.511.627.776 bytes - 2 40 (base do sistema binário elevado a quadragésima potência). 6.1.8 Petabyte (PByte) Equivale a 1.125.899.906.842.624 bytes - 2 50 (base do sistema binário elevado a quinquagésima potência). 6.2 ARMAZENAMENTO DE DADOS NA MEMÓRIA A memória de um computador pode ser vista como um conjunto ordenado de células (bytes) cada uma identificada por um número inteiro positivo distinto, conhecido como endereço (ponteiro). 6.2.1 Armazenamento de Dados do Tipo Literal Como cada dado do tipo literal é representado por um byte e como é possível representar 256 (2 8 ) combinações diferentes surgiu a ideia de associar cada caracter a um número (código) diferente variando de 0 a 255 (256 possibilidades). Essa convenção é representada na forma de uma tabela de mapeamento de caracteres e números. O padrão universalmente aceito é o ASCII-(American Standard Code for Information Interchange/Código Padrão Americano para Intercâmbio de informações). Professor: Ivo Mário Mathias 19

Desse modo como cada informação do tipo literal é constituído por um byte, e como seu tamanho é definido pelo comprimento (quantidade de caracteres/bytes), para guardar um literal na memória do computador deve-se alocar (reservar) um espaço contíguo de memória igual ao seu comprimento. 6.2.2 Armazenamento de Dados do Tipo Lógico São armazenados em um byte. 6.2.3 Armazenamento de Dados do Tipo Inteiro Na maioria das linguagens de programação são armazenados em dois bytes (2 8 x 2 8 = 2 16 ) 65536 possibilidades (-32767, -32766,..., -2,-1,0,1,2,..., 32766, 32767) com sinal. (0,1,2,..., 65534, 65535) sem sinal. Contudo existem linguagens de programação que admitem representar dados do tipo inteiro em 4 ou 8 bytes, ditos inteiros longos ou estendidos. 6.2.4 Armazenamento de Dados do Tipo Real Normalmente são armazenados em 4 bytes, porém existem linguagens de programação que admitem o real estendido com 8 ou 16 bytes. (2 8 x 2 8 x 2 8 x 2 8 = 2 32 ) 4.294.967.296 possibilidades 6.3 CONCEITO E UTILIDADE DE VARIÁVEIS Variável é uma entidade destinada a guardar uma informação. Basicamente uma variável possui três atributos: Nome (identificação) - de uma forma geral as regras para criação de nomes de variáveis são as seguintes: deve começar necessariamente com uma letra e não deve conter nenhum símbolo especial exceto a sublinha (_). Tipo de dado associado a mesma - inteiro, real, literal ou lógico. Informação por ela guardada - único elemento que sofrerá alteração durante a execução de um programa. Professor: Ivo Mário Mathias 20

6.4 DECLARAÇÃO DE VARIÁVEIS EM ALGORITMOS Todas as variáveis utilizadas em algoritmos e programas devem ser definidas antes de serem utilizadas, para permitir que o compilador ou interpretador reserve espaço na memória para as mesmas. Forma como declarar variáveis em algoritmos: VAR <tipo_da_variável> : <nome_da_variável>; ou VAR <tipo_das_variáveis> : <lista_de_variáveis>; Sintaxe: A palavra-chave VAR deverá estar presente e será utilizada uma única vez na declaração de um conjunto ou de uma ou mais variáveis; Numa mesma linha poderão ser definidas uma ou mais variáveis do mesmo tipo; Para tal, deve-se separar os nomes das mesmas por vírgulas; Variáveis de tipos diferentes devem ser declaradas em linhas diferentes. Exemplo (formato C): VAR literal : NOME[10]; inteiro : IDADE; real : SALÁRIO; lógico : TEM_FILHOS; 6.5 MAPEAMENTO DE VARIÁVEIS NA MEMÓRIA O computador não é capaz de trabalhar diretamente com nomes simbólicos de variáveis, só consegue tratar de células de memória por meio do conhecimento de seus endereços (ponteiros). Para intermediar esta situação o compilador ou interpretador monta uma tabela de símbolos. Exemplo: Nome simbólico Posição inicial Tipo de dado NOME 0 LITERAL[10] IDADE 10 INTEIRO SALÁRIO 12 REAL TEM_FILHOS 16 LÓGICO Professor: Ivo Mário Mathias 21

7 EXPRESSÕES O conceito de expressão em termos computacionais esta intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde, 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. Ou ainda, uma expressão é uma combinação de variáveis, constantes e operadores, e que, uma vez avaliada, resulta num valor. Exemplo: Fórmula de cálculo da área de um triângulo. ÁREA = 0,5 * (B * H); Onde: B, H variáveis que respectivamente correspondem a base e altura; 0,5 constante; * operador de multiplicação. 7.1 OPERADORES São elementos funcionais que atuam sobre os operandos. De acordo com o número de operandos podem ser classificados em: Binários - quando atuam sobre dois operandos. Exemplo 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. Exemplo o sinal de ( ) na frente de um número, cuja função é inverter seu sinal. Outra classificação é feita considerando-se o tipo de dado de seus operandos e do valor resultante de sua avaliação, podendo ser: Aritméticos, lógicos e literais. Existindo ainda um caso especial que são os operadores relacionais, que permitem comparar pares de operandos de tipos iguais, resultando sempre num valor lógico. Professor: Ivo Mário Mathias 22

7.2 TIPOS DE EXPRESSÕES Classificadas de acordo com o tipo de valor resultante de sua avaliação. 7.2.1 Expressões Aritméticas São aquelas cujo resultado da avaliação é do tipo numérico, seja ele inteiro ou real e somente o uso de operadores aritméticos e variáveis numéricas são permitidos. No caso das variáveis numéricas os tipos podem ser inteiro ou real e ambos podem ser combinados. Para o caso de uma expressão com tipos inteiros o resultado da avaliação também será do tipo inteiro, quando os dois tipos são combinados o resultado da avaliação é do tipo real. 7.2.1.1 Operadores aritméticos Operador Tipo Operação Precedência + Binário Adição 4 Binário Subtração 4 * Binário Multiplicação 3 / Binário Divisão 3 MOD Binário Resto de divisão 3 ** ou ^ Binário Exponenciação Potenciação 2 SQRT Unário Raiz Quadrada 2 + Unário Manutenção de sinal 1 Unário Inversão de sinal 1 Exemplo: Exponenciação em Linguagem C: x = 2 4 x = 2 ^ 4 x = pow(2,4) ( #include <math.h> ) 7.2.2 Expressões Lógicas São aquelas cujo resultado da avaliação é um valor lógico (.V. ou.f.). Professor: Ivo Mário Mathias 23

7.2.2.1 Operadores lógicos Operador Tipo Operação Precedência.OU. Binário Disjunção 3.E. Binário Conjunção 2.NÃO. Unário Negação 1 7.2.2.2 Tabela-verdade dos operadores lógicos A B.NÃO. A.NÃO. B A.OU. B A.E. B.V..V..F..F..V..V..V..F..F..V..V..F..F..V..V..F..V..F..F..F..V..V..F..F. A B.NÃO. A.NÃO. B A.OU. B ( ) A.E. B ( ) 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 0 7.2.2.3 Operadores relacionais São aqueles usados para efetuar comparações e só podem ser feitas entre variáveis de um mesmo tipo cujo resultado é sempre um valor lógico. Professor: Ivo Mário Mathias 24

Tabela dos operadores relacionais em pseudocódigo: Operador Comparação Precedência = Igual 2 <> Diferente 2 < Menor 1 <= Menor ou igual 1 > Maior 1 >= Maior ou igual 1 7.2.3 Expressões Literais São aquelas cujo resultado da avaliação é um valor literal. Os tipos de operadores variam de uma linguagem de programação para outra. Um caso pode ser a concatenação de strings: toma-se duas strings e acrescenta-se (concatena-se) a segunda no final da primeira, algumas linguagens admitem o uso do operador (+). Exemplo: strings "REFRIGERA" + "DOR" = "REFRIGE- RADOR". 7.3 AVALIAÇÃO DE EXPRESSÕES Expressões que apresentam apenas um único operador podem ser avaliadas diretamente. No entanto, à medida que as mesmas vão-se tornando mais complexas com o aparecimento de mais de um operando numa mesma expressão é necessária a avaliação da mesma passo a passo, tomando um operador por vez. A sequência de 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 na mesma. Regras essenciais: 1. Deve-se observar a prioridade dos operadores, conforme mostrado anteriormente: operadores de maior prioridade devem ser avaliados primeiro. Se houver empate com relação à precedência, então a avaliação se faz considerando-se a expressão da esquerda para direita. Professor: Ivo Mário Mathias 25

2. Os parênteses usados em expressões têm o poder de "roubar" a 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. Exemplo: x = 2; y = 3,0. (x * y + 1) + (x ^ y) / 2 (2 * 3 + 1) + (2 ^ 3) / 2 (6 + 1) + (8) / 2 7 + 4 = 11 7.4 PRIORIDADE (PRECEDÊNCIA) ENTRE TODOS OS OPERADORES Operação Precedência Parênteses mais internos 1 Operadores aritméticos 2 Operadores relacionais 3 Operadores lógicos 4 Professor: Ivo Mário Mathias 26