resumodeaulaslp1-120404204313-phpapp02
27 pág.

resumodeaulaslp1-120404204313-phpapp02


DisciplinaProgramação I21.837 materiais250.080 seguidores
Pré-visualização7 páginas
quase todo computador representa um lugar, convenciona um lugar, para que ele comece a 
executar as instruções iniciais, um programa não tem acesso ao começo da memória. 
Assim o 0 fica reservado para representar um valor especial. Dependendo da linguagem. 
Em Pascal é o \u201cnil\u201d 
Em C é o \u201cNULL\u201d 
O ponteiro pode apontar um valor ou não. 
 
 
 7 
STRING 
 
São a forma de representar texto. As strings são junções de caracteres. 
Seqüência de caracteres, cadeia de caracteres, possuem a característica de representar caracteres uns ao lado dos 
outros. 
\uf0fc Podem ser tipos primitivos (tipo que não pode ser acessado por partes) \u2013 independentes da forma de 
representação. 
Quando a string é primitiva vem acompanhada de algumas operações: 
\uf0fc Concatenar strings: junção de strings 
\uf0fc Encontrar uma substring \u2013 Pedro (outra string com valores ou caracteres da primeira string). 
 
REPRESENTAÇÃO DE STRINGS 
 
\uf0b7 Pascal 
É feita em varias posições na memória, pegando caracteres consecutivos na memória. 
2 0 i a b c d e f G 
Tamanho Caracteres 
Forma de representação que limita o tamanho, há sempre um tamanho máximo. E pode-se sempre estar 
desperdiçando memória. 
\uf0fc Vantagem: a hora que quiser saber quantos caracteres há numa string, estará lá, na parte que cuida do 
controle. 
\uf0a7 Normalmente os compiladores usavam 2 bytes no controle. 
\uf076 Desvantagem: não há como representar string com mais de 255 caracteres. 
 
\uf0b7 C 
Em C também há quantidades variáveis de strings, ao contrario de pascal, não há tamanho padrão. Em C deve-se 
declarar o tamanho. Porém, um espaço razoável na memória será gasto. 
0 i \0 B C e f G i O 
 
Todos os espaços são usados para guardar informações, menos 1, que será um espaço especial, um sinal para indicar 
o fim da seqüência. 
\uf0fc Vantagens: não há tamanhos máximos para as strings. Desde que haja posições suficientes. 
\uf076 Desvantagens: necessário contar a quantidade de caracteres. 
 
 
 8 
\uf0b7 ANSI Strings 
2 o i /0 a e g h e n 
Tamanho Controle 
Padronização: ao se representar strings, reserva-se uma parte para armazenar o tamanho e outra para indicar o 
controle, o fim da string. 
STRINGS DINÂMICAS 
\uf076 Seus valores mudam ao decorrer da execução. 
String x:= \u201calo\u201d; 
Na hora de mudar o valor, desmarca-se a região antiga, reserva-se uma nova região de memória e depois associa a 
variável com a nova posição de memória. Desperdiça-se tempo porém, economiza-se memória. 
 
INTERPOLAÇÃO DE STRINGS 
\uf076 Inserir números ou variáveis no meio de Strings. Concatenação. 
Writeln (\u2018o resultado é: \u2018, result); 
Printf(\u201cO resultado é: %d\u2019, result); 
Insere a String a partir de outra coisa 
 
CASAMENTO DE PADRÕES 
\uf0b7 Expressão regular que define um formato, strings que seguem regras de formação. 
\uf0b7 Substitui uma string por uma série de operações separadas. 
\uf0b7 Um único comando verifica se a String segue tal expressão. 
 
BIBLIOTECA DE PROGRAMAÇÃO 
\uf0fc Conjunto de partes de programa, pedaços, desenvolvidos previamente e que agora poderá ser usado no seu 
próprio programa. 
 
ENUMERADOS 
\uf0fc Aumentam a legibilidade 
\uf076 Repetição de constantes simbólicas. 
Parece com uma string, ou com um identificador, porém não é associado a tais coisas. É usado pelo compilador, de 
modo que uma tabela será construída automaticamente e usada pelo programa. Temos legibilidade sem 
complicação. 
reais 0 
copos 1 
Utilizar 1 nome para 
representar coisas distintas. 
Rosa, cor, e rosa, flor. 
 
 
 9 
SUBFAIXAS 
 
\uf0b7 Aumentam a legibilidade (tornam os limites explícitos) 
\uf0b7 Podem ajudar na detecção de erros; 
\uf0b7 Conjunto limitado de outro tipo, tipo que existe uma ordem entre os elementos. 
 
Ex: tipos numéricos: [1,2,3,4,5,6] Alguns vem antes e outros depois. 
\uf0fc Facilidade: não é necessário ficar verificando constantemente se aqueles valores não estão em sequencia. 
Em pascal há o índice de subfaixa e é indicado no início de uma declaração de vetor: 
Array [1..10] of integer; 
Tipo de dados: classificação dos dados nos programas. Os compiladores usam essa classificação para realizar 
checagens. 
Estrutura de Dados: não há como serem declaradas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 10 
VETORES 
 
\uf0fc Valores em posições consecutivas 
É vetor: 
X X x x x 
 
Não é vetor: 
X x x 
 
São posições na memória, há coisas relacionadas antes e depois das posições. 
x x x X ... ... 15 
 
\uf076 Há dificuldade para mudar o tamanho. 
Deve se procurar outro lugar na memória em que caibam outros elementos que se deseja 
\uf0fc Acesso em tempo constante. 
O tempo que se demora em saber se o 1º ou qualquer outro elemento são iguais: 
\uf0a7 Dada uma posição, faz-se uma conta e assim a conta se refere à posição de memória onde se localiza o 
elemento desejado, o tempo da conta é a mesma, igual, constante para todos os elementos. 
 
\uf0fc Homogêneo 
Os elementos devem ser do mesmo tipo. Índices organizados 
Os ponteiros guardam as referencias, as \u201ccontas\u201d para as obtenções do elementos que estão em determinada 
posição. Demora um pouco mais, porém o tempo continua sendo constante para todos os elementos. 
-Operador [] ou () 
Dependem da linguagem. A questão da declaração e uso dos operadores dependem da linguagem porque cada 
linguagem possui um paradigma próprio. 
A linguagem pode querer enfatizar coisas importantes para a mesma: 
\uf0fc - Tipo do índice 
\uf0fc -O valor mínimo do índice 
\uf0fc -A validação do índice 
Algumas vezes há a checagem, depende da linguagem, ou pode ser característica do compilador, ou algumas vezes o 
compilador não obedece à regra. 
 
 
 
 
 11 
ALOCAÇÃO ESTÁTICA OU DINÂMICA 
Estática: pré-definida 
Dinâmica: definida na hora da compilação. Primeiro guarda os valores e depois se define o tamanho do vetor. 
 
VETORES ASSOCIATIVOS (HASHES) 
Em Perl é hash, em Lua é table, em Python é lista. 
\uf0fc São estruturas chave-valor. 
\uf0fc Podem ser usados como vetores, listas ou registros. 
\uf0fc Implementados por arvores ou funções hash. 
Nota [\u201cJoão\u201d] 
\uf0e8 Tabela Hash 
33 22 30 26 
 
Traduzir para a forma que o hardware consiga trabalhar. 
\uf0b7 Função hash: pega-se uma quantidade indeterminada de bytes para determinar, pega-se por partes, faz-se 
um conta misturando as partes de forma que saia sempre um número de tamanho fixo. 
Associa qualquer quantidade de informação numa quantidade fixa. 
Nota [hash(\u201cJoão\u201d)] 
A conta gera um índice referente ao nome. 
ÁRVORE 
Estrutura de dados em que há pedaços diferentes localizados em lugares diferentes na memória. 
\uf0fc Fácil inserir e remover elementos, porém ao acessar torna-se mais lenta. 
 
REGISTRO 
Informação heterogênea para representar muitas coisas. É um tipo de vetor associativo 
\uf0fc Associa diferentes tipos comuns. Aglomerado de informações assim como no vetor, só que diferente deste, 
acumula tipos diferentes. 
Aluno 
Nome 
Nº de matricula 
Nota 
 
Data TipoEixo = X|Y|Z|Eixo FloatFloatFloat 
Em Sublinhado = são as chamadas \u201cTags\u201d 
 
 12 
TIPO LISTA 
 
É um aglomerado de valores assim como o vetor 
São chamados de tipos fundamentais. 
\uf0fc A diferença para o vetor é que a lista é espalhada pela memória, seus itens são encontrados e/ou 
organizados por ponteiros. 
 
TIPO UNIDADE 
 
\uf0fc Tipo que só pode representar um valor. 
Com 1 bit só se representa 2 valores, 0 ou 1. 
A unidade pode ser representada com 0 bits, não se precisa de memória para guardar o tipo unidade. 
Void > Tipo que não precisa de armazenamento, é tratado de maneira especial pelo compilador. 
\uf0fc Os compiladores também definem tipos. 
 
\uf0fc Há bibliotecas que já são importadas pelo compilador. 
 
\uf0fc O tipo pode estar na linguagem, no compilador, na biblioteca ou em alguma parte do programa. 
 
 
 
 
 
 
 
 
 
 
 13 
Vinculações 
 
\uf076 Nome -> (escopo) 
\uf076 Tipo 
\uf076 Armazenamento (endereço) -> \u201cTempo de vida\u201d, que a variável consegue guardar o valor. 
\uf076 Valor 
 
Costuma-se pensar na variável