Modelos de Linguagem de Programação I Aula 06

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Programação em Java Prof. Maurício Braga
Matrizes Unidimensionais
Prof. Thiago Pereira Rique
Software Básico Silvio Fernandes
Programação Básica em Java
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Alocação Dinâmica de Memória
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Alocação Dinâmica de Memória - Ponteiros
AULA – Linguagem C – Vetores, Ponteiros Estruturas
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Análise Léxica Supondo o trecho de programa abaixo:
Linguagem C Strings.
Laboratório de Programação de Computadores I
Robson Godoi / Sandra Siebra
Ponteiros.
DESENVOLVIMENTO DE COMÉRCIO ELETRÔNICO
Escola Secundária c/ 3º CEB da Batalha
Listas Encadeadas.
Revisão da Linguagem C.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
PROGRAMAÇÃO I UNIDADE 1.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
PHP Tipos de dados Constantes.
Linguagem de Programação II Parte IX
Conceitos de Linguagem de Programação
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação I Aula 2 (Métodos)
Aula prática 6 Vetores e Matrizes
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Professor Mário Dantas
Prof. Ricardo Santos PONTEIROS
Tipos de Dados Paradigmas de Programação
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Estruturas de Dados Aula 9: Listas (parte 1)
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Capítulo VIII Ambientes de Execução
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Tipos de Dados Operadores
Programação Orientada a Objetos - Java
Introdução a Banco de Dados Aula 04
Joaquim José Hangalo  Podemos entender a memória do computador como um conjunto de células que armazenam informações.  Cada célula.
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays  Variável: armazena apenas um valor  Como criar em uma única variável, espaço para.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Faculdade Pernambucana - FAPE Setembro/2007
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Fundamentos de linguagens de programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
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.
Estruturas de Dados Murilo Salgado Razoli.
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Ponteiros. Programação II Professora: Mai-Ly vanessa horário: ter 9h-11h; sex 11h-13h Aula 1.
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Linguagem de Programação
Programação em C Aula 9.
1 Programação – JAVA Unidade - 4 Arrays e Strings Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
1 Estruturas Condicionais Aula – Tópico 3 Algoritmos e Estruturas de Dados I (DCC/003)
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Transcrição da apresentação:

Modelos de Linguagem de Programação I Aula 06 Prof. Silvestri www.eduardosilvestri.com.br

Tipos de Dados Em ciência da computação tipos de variáveis ou dados é uma combinação de valores e de operações que uma variável pode executar, o que pode variar conforme o sistema operacional e a linguagem de computador. São utilizados para indicar ao compilador ou interpretador as conversões necessárias para obter os valores em memória durante a construção do programa. Por outro lado, ajudam também o programador a detectar eventuais erros (sintáticos).

Tipos de Dados Dependendo da linguagem de programação, o tipo de um dado é verificado diferentemente, de acordo com a análise léxica, sintática e semântica do compilador ou interpretador da linguagem. Os tipos têm geralmente associações com valores na memória ou com objetos (para uma linguagem orientada a objeto) ou variáveis.

Estáticos ou Dinâmicos Tipos de Dados Estáticos ou Dinâmicos A verificação do tipo de um dado é feita de forma estática em tempo de compilação ou de forma dinâmica em tempo de execução. Em C, C++, Java e Haskell os tipos são estáticos, em Scheme, Lisp, Smalltalk, Perl, PHP, Visual Basic, Ruby e Python são dinâmicos. Em C uma definição estática do tipo de uma variáveis ficaria assim: printf("O tipo char ocupa %d bytes\n", sizeof(char));

Estáticos ou Dinâmicos Tipos de Dados Estáticos ou Dinâmicos Em Linguagem Python a definição dinâmica do tipo de dado é feita em tempo de execução, por exemplo: Variável de tipo "inteiro": >>> a = 123 >>> type(a) <type 'int'> E logo a mudança de estado para tipo string: >>> a = 'teste' <type 'str'> >>>

Tipos de Dados Forte e Fraco Linguagens implementadas com tipos de dados fortes, tais como Java e Python, exigem que o tipo de dado de um valor seja do mesmo tipo da variável ao qual este valor será atribuído. Exemplo:

Tipos de Dados Forte e Fraco (Sintaxe genérica) 1. Declarar Variáveis 2. TEXTO nome 3. INTEIRO idade 4. 5. Atribuições 6. nome = "Fulano" idade = "13" Ocorrerá um erro ao compilar a linha 7, pois o valor "13" precisa ser convertido para o tipo de dado INTEIRO.

Tipos de Dados Forte e Fraco Em linguagens com tipos de dados fracos, tais como PHP e VBScript, a conversão não se faz necessária, sendo realizada implicitamente pelo compilador ou interpretador.

Tipos de Dados Primitivo e Composto Um tipo primitivo (também conhecido por nativo ou básico) é fornecido por uma linguagem de programação como um bloco de construção básico. Dependendo da implementação da linguagem, os tipos primitivos podem ou não possuir correpondência direta com objetos na memória. Um tipo composto pode ser construído em uma linguagem de programação a partir de tipos primitivos e de outros tipos compostos, em um processo chamado composição. Em C, cadeias de caracteres são tipos compostos, enquanto em dialetos modernos de Basic e em JavaScript esse tipo é nativo da linguagem.

Tipos de Dados Primitivo e Composto Tipos primitivos típicos incluem caracter, inteiro (representa um sub-conjunto dos números inteiros, com largura dependente do sistema; pode possuir sinal ou não), ponto flutuante (representa o conjunto dos números reais), booleano (lógica booleana, verdadeiro ou falso) e algum tipo de referência (como ponteiro ou handles). Tipos primitivos mais sofisticados incluem tuplas, listas ligadas, números complexos, números racionais e tabela hash, presente sobretudo em linguagens funcionais.

Tipos de Dados Primitivo e Composto Espera-se que operações envolvendo tipos primitivos sejam as construções mais rápidas da linguagem. Por exemplo, a adição de inteiros pode ser feita com somente uma instrução de máquina, e mesmo algumas CPUs oferecem instruções específicas para processar sequências de caracteres com uma única instrução. A maioria das linguagens não permite que o comportamento de um tipo nativo seja modificado por programas. como exceção, Smalltalk permite que tipos nativos sejam estendidos, adicionando-se operações e também redefinindo operações nativas.

Tipos de Dados Primitivo e Composto Uma estrutura em C e C++ é um tipo composto de um conjunto determinado de campos e membros. O tamanho total da estrutura para o tipo composto corresponde a soma dos requerimentos de cada campo da estrutura, além de um possível espaço para alinhamento de bits. Por exemplo: struct Conta { int numero; char *nome; char *sobrenome; float balanco; };

Tipos de Dados Primitivo e Composto struct Conta define um tipo composto chamado Conta. A partir de uma variável minhaConta do tipo acima, pode-se acessar o número da conta através de minhaConta.numero. Conta minhaConta;

Tipos de Dados Strings de Caracteres Em programação e em linguagens formais, uma cadeia de caracteres (também conhecida como string) é uma sequência ordenada de caracteres (símbolos) escolhidos a partir de um conjunto pré-determinado. Em programação, cada símbolo armazenado na memória é representado por um valor numérico. Uma variável declarada com tipo de dado cadeia geralmente armazena um número pré-determinado de caracteres.

Strings de Caracteres – Teoria Formal Tipos de Dados Strings de Caracteres – Teoria Formal Seja Σ um alfabeto, um conjunto finito e não vazio. Os elementos de Σ são chamados caracteres. Uma cadeia sobre Σ é qualquer sequência finita de caracteres de Σ. Por exemplo, se Σ = {0, 1}, então 0101 é uma cadeia sobre Σ. O tamanho da cadeia é a quantidade de caracteres, e pode ser qualquer valor inteiro não negativo. A cadeia vazia é uma cadeia única sobre Σ de tamanho 0, sendo denotada por ε ou λ.

Tipos de Dados Strings de Caracteres – Concatenação e Sub Cadeias. Concatenação é uma importante operação binária em Σ*. Para qualquer duas cadeias s e t em Σ*, sua concatenação é definida pela sequência de caracteres de s seguida pela sequência de caracteres em t, denotada por st. Por exemplo se Σ = {a, b, …, z}, s = bear e t = hug, então st = bearhug e ts = hugbear. A concatenação de cadeias é uma operação associativa, mas não comutativa. A cadeia vazia serve como um elemento identidade; par qualquer cadeia s, εs = sε = s. Portanto, o conjunto Σ* e a operação de concatenação formam um monóide. A cadeia s é dita uma sub-cadeia (ou fator) de t se existem cadeias (possivelmente vazias) u e v de forma que t = usv.

Tipos de Dados Strings de Caracteres – Tipo de Dados. Um tipo de dado cadeia de caracteres (referido em programação geralmente como string) é uma modelagem de uma cadeia formal de caracteres. São bastante usados em programação, sendo implementados em quase todas as linguagens de programação. Em algumas linguagens esse tipo é definido nativamente, em outras é um tipo composto, derivado.

Tipos de Dados Arrays Em programação de computadores, um array, também conhecido como vetor ou lista (para arrays uni-dimensionais) ou matriz (para arrays bi-dimensionais), é uma das mais simples estruturas de dados. Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição é dada por um índice, também chamado de subscrição.

Tipos de Dados Arrays O índice geralmente utiliza uma seqüência de números inteiros, (ao contrário de um array associativo) mas o índex pode ter qualquer valor ordinal. Alguns arrays são multi-dimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por um seqüência (ou sucessão) finita de quatro números inteiros. Geralmente, arrays uni- e bi-dimensionais são os mais comuns.

Tipos de Dados Arrays Os arrays podem-se considerar como as estruturas de dado mais simples que é possível imaginar. Têm a vantagem de que os seus elementos são acessíveis de forma rápida, mas têm uma notável limitação: são de tamanho fixo, não podem ser incrementados ou diminuídos sem implicar complexos processos de cópia. Estas estruturas de dado são ajeitadas nas situações em que o acesso aos dados seja realizado de forma aleatória e imprevisível. Porém, se os elementos podem estar ordenados e vai-se empregar um acesso seqüencial, seria mais ajeitada uma lista.

Tipos de Dados Arrays – Forma de Acesso. A forma de acesso aos elementos de um array é direta, ao contrário das listas. Isto quer dizer que o elemento desejado obtêm-se a partir do seu índice e não é preciso procurá-lo elemento por elemento. No caso das listas, por exemplo, para alcançar o terceiro elemento ter-se-á de acessar primeiro aos dois anteriores (ou bem de guardar um ponteiro que permita acessar de maneira rápida a esse elemento em particular).

Tipos de Dados Arrays – declarando e alocando um array. Em Java, os arrays são objetos que necessitam ser inicializados. Isto geralmente é feito usando o operador new. Para um array, o programador especifica o tipo dos elementos do array e o número de elementos como parte da operação new. Ex.: int[] A = new int[5]. String[] S = new String[5]; double[] d = new double[10]; int[][] d2 = new int[10][10]; // matriz 10x10 , array de arrays double[] a; a = new double[100];

Tipos de Dados Arrays – declarando e alocando um array. Em C, os arrays são declarados, defenindo primeiro o seu tipo, em seguida do seu nome e por fim a sua dimensão. Ex.: int array[10];. int quadro[10]; double array[100]; int matrix[20][10]; /* matriz 20x10 */

Tipos de Dados Arrays – declarando e alocando um array. Inicializando arrays no momento da criação int[] A = {5, 7, 9, 2, 0}; int[][] d2 = { {1,2,3} , {4,5,6} }; long[] a; a = new long[] {10,20,30,40};

Tipos de Dados Arrays – declarando e alocando um array. Automaticamente o Java inicializa com um valor default cada elemento do array: Null para tipo Objetos; 0 (zero) para short, byte, int, long, float e double; Unicode 0 para char; False para boolean; Em C, os arrays quando inicializados no momento da declaração, são definidos do seguinte modo: int array[5] = {3,4,5,6,3}; double quadro[5] = {3.0,4.0,5.0,6.03,3.0}; int matrix[4][4] = {{3,4,3,4},{5,6,2,3}};

Dúvidas www.eduardosilvestri.com.br Eduardo Silvestri silvestri@eduardosilvestri.com.br

Questões

Fazer o mapa conceitual da aula. Publicação Fazer o mapa conceitual da aula.