Buscar

NOMES E TIPAGENS DE DADOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

• 
=i· 
INSTITUTO FEDERAL 
SANTA. CATARINA 
Nomes, Identificadores e 
Tipagem de Dados 
Linguagens e Paradigmas de Programação 
Prof. Vilson Heck Junior 
Material: Prof. Wilson Castello Branco Neto 
INSTITUTO FEDERAL 
SAHTA CATARINA Conteúdo 
Nomes ou identificadores 
Tipagem estática e dinâmica 
Tipagem forte e fraca 
Objetivos: 
• Entender sobre nomes e identificadores em linguagens; 
• Conhecer os conceitos de tipagem estática e dinâmica; 
• Diferenciar tipagem forte de fraca; 
• Relacionar tipos primitivos e compostos; 
• Praticar exemplos de tipagem estática, dinâmica, forte e 
fraca em diferentes linguagens de programação; 
INSTITUTO FEDERAL 
s.on~ CATARINA Leituras 
• Leitura Obrigatória: 
TUCKER, A. B.; NOONAN, R. E.; Linguagens de 
programação: principios e paradigmas. 2. ed. São Paulo: 
McGrall-Hill, 2009. Capítulo 2 (Exceto 2.5). Capítulo 5 (5.1 ao 
5.4). 
SEBESTA, R. W.; Conceitos de linguagens de 
programação. 9. ed. Porto Alegre: Bookman, 2011. Capítulo 
5. Capítulo 6 (Entrevista LUA páginas 302 e 303). 
• Leitura Complementar: 
TUCKER, A. B.; NOONAN, R. E.; Linguagens de 
programação: princípios e paradigmas. 2. ed. São Paulo: 
McGrall-Hill, 2009. Capítulo 2, (2.5) e Capítulo 3. 
SEBESTA, R. W.; Conceitos de linguagens de 
programação. 9. ed. Porto Alegre: Bookman, 2011. Capítulo 
3. Capítulo 6. 
·s: 
• INSTITUTO FEDERAL 
SAHTA CATARINA 
101010 
Nomes ou Identificadores 
Nomes, Identificadores e Tipagem de Dados 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
int quantidade; 
int sorna(int a, int b) 
{ 
return a + b; 
} 
••• • •• 
• INSTITUTO FEDERAL 
SANTA CATARINA 
10 ~ª 
Nomes ou Identificadores 
Para criar os identificadores, todas as linguagens 
devem responder às perguntas abaixo: 
1. Quais as regras para formação dos nomes? 
2. Os nomes são sensíveis à capitalização? 
3. Os termos especiais são palavras reservadas? 
~-· 
·=· INSTITUTO FEDERAL SANTA CATARINA. Nomes ou Identificadores 
como os nomes podem ser 
permitem o uso de símbolos 
especiais na definição dos nomes dos 
identificadores e outras não; 
• PHP - nomes de variáveis iniciam com $: 
• $nome = "IFSC"; 
• e c h o $nome; 
• 
••• •• INSTITUTO FEDERAL 
SANTA CATA.ftlt4A Nomes ou Identificadores 
• Perl - $ (escalar}, @ (vetor) ou % (hash) no início do 
nome especificam o seu tipo: 
• @cidades = ( "Lages", "Florianópoli s", 
''Correi a Pi nt o'' ) ; 
• p rint "$cid ades [ O] \ n"; 
• p rint "$cid ades [ l ] \ n"; 
• p rint "$cid ades [ 2] \ n"; 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
Regras léxicas definem como os nomes podem ser 
• formados: 
• Ruby - @ ou @@ indicam se é uma variável de 
instância ou variável de classe; 
• As primeiras linguagens só usavam letras maiúsculas e 
possuíam restrição quanto ao tamanho do nome - Seis 
caracteres no caso do FORTRAN. 
• O FORTRAN95 restringe a 31 caracteres seus nomes; 
• C não tem restrição para os nomes internos, mas 
apenas os 63 primeiros caracteres são significativos e 
nomes externos também são restritos a 31 caracteres; 
Java, C# e Ada não tem limitação de tamanho; 
INSTITUTO FEDERAL 
SAN TA CATARINA Nomes ou Identificadores 
• Pascal e Ada não diferenciam entre maiúsculas e 
minúsculas, C, C++ e Java sim; 
• Quais as vantagens de fazer ou não esta 
diferenciação? 
• Prejudica a legibilidade; 
• Dificulta a escrita (Ex. parselnt); 
• Força a padronização; 
• Permite a associação de nomes semelhantes 
com diferentes capitalizações; 
INSTITUTO FEDERAL 
SANTA CATAR HA Nomes ou Identificadores 
identificadores definidos como palavras 
Exemplo. 
••• 
==· INSTITUTO FEDERAL 
SAllTA CATARINA Nomes ou Identificadores 
mais 
células de memória que possui: 
• Nome; 
• Endereço; 
• Valor; 
• Tipo; 
• Escopo; 
• Tempo de vida. 
11: 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
• Indica o local da memória da máquina ao qual a 
variável está associada; 
• Uma mesma variável pode representar diferentes 
posições de memória em diferentes partes da 
execução; 
• Diferentes variáveis podem indicar o mesmo 
u.:~ ;j! endereço de memória. 
ft • !• 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
Valor de uma variável (r-value)? 
~ • Conteúdos da(s) célula{s) de memória associadas 
à variável; 
• Células abstratas são diferentes de células físicas 
(1 byte); 
Tipo de uma variável? 
• Define a faixa de valores que a variável pode 
armazenar, o número de células de memória que 
ela utiliza e o conjunto de operadores que podem 
ser aplicados sobre ela. Exemplo em C++: 
• • Nomes ou Identificadores 
int *numeres= NULL; 
int qtd = O; 
cout << "Informe a quantidade de numeres : 11 ; 
cin >> qtd; 
cin . ignore () ; 
numeras = new int [qtd] ; 
for (int i = O; i < qtd; i++J 
numeros [ i ] = 1.; 
cout << 11 End . de numeres : " << (long) numeros << endl; 
cout << "End . de numeros[ l ] : " << (long) &numeros [ l] << endl; 
cout << "Pressio ne enter para f i nalizar" ; 
cin . get () ; 
return O; 
~-· 
·=· INSTITUTO FEDERAL SANTA CATARINA. Nomes ou Identificadores 
comandos) se ela for declarada dentro dele; 
• Uma variável é não local a um escopo se ela for 
acessível aos comandos, mesmo não sendo 
declarada dentro dele. 
• Em linguagens de programação, o escopo de 
variáveis pode ser estático ou dinâmico. 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
encontrada em seu ancestral, até o bloco de código 
mais abrangente Caso não seja encontrada em 
nenhum deles, um erro é gerado; 
• Esta avaliação é mais complicada em linguagens que 
permitem subprogramas aninhados (Pascal, Ada 
Javascript, PHP, etc). 
INSTITUTO FEDERAL 
SIIHTA CATARIH• 
Program Su b p r og ramasAni nhado s (out put) ; 
var 
x : integer; 
procedure Sub l ; 
var 
x: i n teger; 
begin 
X := 5; 
end; 
procedure Sub2; 
var 
x: i n teger; 
begin 
X := 8 ; 
end; 
begin 
X:= 10 ; 
Subl; 
Sub 2 ; 
writeln( 'Resul tad o: 
end. 
x ) ; 
INSTITUTO FEDERAL 
SAHTA CATARINA Nomes ou Identificadores 
de blocos 
• C e C++ permitem a redeclaração de variáveis nos 
blocos com os mesmos nomes das variáveis dos 
blocos que os englobam; 
• Java e C# não? 
• Algumas linguagens exigem que a declaração seja feita 
no início dos módulos e outras, como C99, C++, Java e 
C# não. 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
sendo acessível a todas elas (C, C++, PHP e Python). 
• Seu valor é acessível a todas as funções, exceto 
aquelas que declaram uma variável local com o mesmo 
nome; 
• Em C++ pode-se utilizar o operador de escopo : para 
acessar variáveis globais em funções com variáveis 
locais homônimas. 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
chamada dos subprogramas, o que pode variar entre 
uma execução e outra; 
• APL e as primeiras versões de LISP utilizavam escopo 
dinâmico; 
• Perl e Common LISP permitem a declaração de 
variáveis com escopo dinâmico, embora o padrão seja 
estático. 
• No próximo slide é apresentado um exemplo utilizando 
Perl: 
INSTITUTO FEDERAL 
SIIHTA CATARIH• 
!%-=-
$nome = "IFSC"; 
&mostraNome () ; 
&myFuncao( ) ; 
&localFuncao () ; 
s ub mostraNome { 
prin t "Nome : Snome\ n" ; 
sub myFuncao ( 
my $nome = "UFSC"; 
print "Nome myFuncao : $nome\ n"; 
&mostraNome () ; 
sub local Funca o { 
local $nome = "UDESC"; 
print "Nome localFuncao: $n ome \ n "; 
&mostraNome () ; 
r=~~--------------------------~ 
INSTITUTO FEDERAL 
SANTA CATARINA Nomes ou Identificadores 
são menos 
parâmetros entre subprogramas; 
• Erro no livro do SEBESTA, página 255, parágrafo 4, 
linha 2.Onde está 
• "os programas em linguagens com escopo 
dinâmico são mais fáceis de ler. . .", deveria ser 
estático. 
• • 1!• 
INSTITUTO FEDERAL 
SAHTA CATAIUNA Nomes ou Identificadores 
ser definido 
como o tempo de sua existência em memória. 
• De maneira geral o escopo e o tempo de vida de uma 
variável estão relacionados; 
• A chamada a funções modifica esta relação; 
• Modificadores em C, C++ e PHP, como a palavra 
static, também alteram esta relação. 
• Exemplo de uso de static para variáveis no próximo 
slide, para a linguagem C++: 
• •• 
••• 
•• INSTITUTO FEDERAL 
S.\NTA CATAfllHA 
~ 
1C.::. !'il-'5-~ 
#include <iostream> 
using namespace std ; 
int con t () 
{ 
static int X - O; 
x++; 
return x; 
} 
int ma in () 
{ 
cout << c ont () << 
cout << c ont () << 
cout << c ont () << 
return O; 
} 
e nd l; 
e nd l; 
e nd l; 
Tente também 
removendo static 
INSTITUTO FEDERAL 
SAtlTA CATARINA Nomes ou Identificadores 
• É um nome vinculado a um valor apenas uma vez; 
• Possibilitam a parametrização do programa, facilitando 
a sua manutenção e melhorando sua legibil idade e 
confiabilidade; 
• Algumas linguagens (como Pascal e Fortran} permitem 
apenas a utilização de valores constantes, enquanto 
outras (como C++ e Ada) permitem expressões; 
#include <iostream> 
INSTITUTOFEDERAL using namespace std ; 
SANTA CATAR HA 
!!ti 
int X = 5; 
const int y = x + 2; 
int main () 
{ 
} 
X = 10 ; 
cout << "Resulta d o : "<< y << endl; 
return O; 
~ ~-----------------------~ 
• 
••• •• INSTITUTO FEDERAL 
SANTA CATA.ftlt4A Nomes ou Identificadores 
Em dife rentes linguagens: 
• C/C++ - const· 
' 
• Pascal - const; 
• Java - final; 
• C# - conste readonly; 
• Ada - constant; 
·s: 
• INSTITUTO FEDERAL 
SAHTA CATARINA 
101010 
Tipagem de Dados 
Nomes, Identificadores e Tipagem de Dados 
~-· 
·=· INSTITUTO FEDERAL SANTA CATARINA. Tipagem de Dados 
• Tipo de dado: 
• Um tipo é um conjunto de valores e um 
conjunto de operações sobre estes valores. 
.1: 
•• INSTITUTO FEDERAL 
SANTA CATARINA Tipagem de Dados 
• Erro de tipo: 
• Qualquer erro que surja porque uma operação 
é tentada sobre um tipo de dado para o qual 
ela não está definida. 
• Sistema de tipos: 
• Definição precisa das associações entre o tipo 
de uma variável, seus valores e as operações 
possíveis sobre esses valores. 
••• • •• 
• INSTITUTO FEDERAL 
SANTA CATARINA 
10 ~ª 
Tipagem de Dados 
representar todas as 
informações (Primeiras versões do Fortran); 
• COBOL permitiu a definição da precisão de dados 
decimais e criou os registros; 
• PUI melhorou a flexibilidade dada pelo COBOL e 
apresentou diversos novos tipos; 
• ALGOL 68 fornece alguns tipos básicos e 
operadores para a definição de novos tipos (novas 
estruturas - POO). 
:1: 
•• INSTITUTO FEDERAL 
S.\NTA CATAfllHA Tipagem de Dados 
Toda linguagem de programação implementa um 
dos formatos de tipagem abaixo: 
• Tipagem estática; 
• Tipagem dinâmica; 
INSTITUTO FEDERAL 
SAtlTA CATARINA Tipagem de Dados 
mudam durante a execução do programa. Exemplos 
de linguagens: 
• e 
• Java 
• Ada 
INSTITUTO FEDERAL 
SANTA CATAfl!N.\ Tipagem de Dados 
• Perl 
• Python 
• PHP 
• Javascript 
• 
•• 
==· INSTITUTO FEDERAL 
SIINTA CATARINA Tipagem de Dados 
Tipagem dinâmica: 
·~~ A tipagern dinâmica também é conhecida corno 
rit:. "Duck Typing" , ou a tipagern do pato. Este nome é 
atribuído a James Whitcornb Riley, que certa vez 
exemplificou da seguinte forma: 
• "Quando eu vejo um pássaro que caminha como 
um pato, nada como um pato e grasna como um 
pato, eu chamo aquele pássaro de pato." 
••• 
=·· 
Tipagem de Dados 
INSTIT 
SAH Tipagem dinâmica • Exemplo JavaScript: 
<p i d = "said a 11 > </ p> 
<s c ript> 
var x ; //undefined 
x = 1 0.5; //nwrber 
x = º Instituto Federal de Santa Catarina" ; //string 
x = true; //bool ean 
x = function () {} ; //function 
x = null ; //object 
document . g e t El ementBy l d("saida" ) . innerHTML = x ; 
//ver typeof 
</ script> 
••• • •• 
• INSTITUTO FEDERAL 
SANTA CATARINA Tipagem de Dados 
Comparação: 
Quesito lipagem estática 1ipagem dinâmica 
Velocidade de execução Maior Menor 
Verificação por erros Compilação Execução 
Simplicidade de escrita Menor Maior 
Maior Menor 
10 ~ª 
• 
••• 
•• INSTITUTO FEDERAL 
SAHTA CATARINA Tipagem de Dados 
ou estática, ela pode ter diferentes níveis de exigência 
no que diz respeito ás operações realizadas nos tipos 
dos dados envolvidos. 
Quanto mais exigente a linguagem for, em relação 
às regras das operações que envolvam diferentes 
tipos de dados, mais fortemente tipada será esta 
linguagem. 
INSTITUTO FEDERAL 
SANTA CATAfl!N.\ 
~ !-S 
'~ 
Tipagem de Dados 
double x = 2 . 5; 
i nt y = 3; 
int res = x + y; 
cout << res << endl; //Para C++ 
System.out.println(res); //Para Java 
Este código já foi implementado em aula anterior. 
• 11• 
INSTITUTO FEDERAL 
S.A.NTA CATARINA Tipagem de Dados 
id=11 s aida 11 > </ p> 
<script> 
var x = 1110" ; 
var z = -x; 
document . g e tElementByid( 11saida11 ) . innerHTML = z; 
</ script> 
INSTITUTO FEDERAL 
SANTA CATAfl!N.\ Tipagem de Dados 
10; 
Sy = "20 11 ; 
echo "x eh " gettype (Sx ) PHP_EOL; 
echo "y eh " gettype(Sy) PHP_ EOL; 
Sz = Sx + Sy; 
echo "Resultado(x+y): Sz" . PKP EOL; 
Como fazer para concatenar, ao invés de somar? 
;1: 
INSTITUTO FEDERAL 
SANTA CATARINA Tipagem de Dados 
Força de tipagem: 
É importante observar que não há 100% de consenso 
entre diferentes autores no momento de comparar todas as 
linguagens de programação e dizer qual é mais fortemente 
tipada que outra. 
Os principais critérios para tornar uma linguagem 
"fracamente tipada", são 
• Conversão implícita; 
• Exposição de ponteiros como valores numéricos; 
• Unions sem marcação; 
• Falta de verificações de erros (tipagem estática); 
lil
i.:::::. !;-!';! • Tipagem dinâmica; 
~ 
• 
·=· •• INSTITUTO FEDERAL 
SANTA CATARINA Tipagem de Dados 
doub1e y = 2. 6 ; 
int x = y; //Conversão imp1ícita 
• Java: 
doub1e y = 2. 6 ; 
int x = (doub1e)y; //Conv. exp1ícita 
••• • •• 
• INSTITUTO FEDERAL 
SANTA CATARINA Tipagem de Dados 
Força de Tipagem • Ponteiros numéricos • exemplo: 
• C++: 
int *ptr = new int [lO J; 
int *atual = ptr, *fim = 
~ while {atual<= fim) { 
&ptr[9 ] ; 
~ cout << "End: " <<atual<< " '' <<*atual << endl; 
atual++; 
~'-------------------------------' 
10 ~ª 
·s: 
• INSTITUTO FEDERAL 
SAHTA CATARINA Tipagem de Dados 
Cada linguagem de programação é livre para escolher 
os nomes e tamanhos de dados que julgar adequado 
Independente das escolhas, um conjunto mínimo de tipos 
primitivos deve existir. Exemplo C e Java: 
• Inteiro: short (2), int (4) e long(8); 
• Real: float(4) e double(8); 
• Caractere char(1 em C++ e 2 em Java); 
• Booleano boolean(1 em Java) bool(1 em C++); 
Em Java os tamanhos são fixos. Em algumas 
linguagens, como C, C++ e Pascal, os tamanhos podem 
R::~ ~ ser definidos pelo compilador. 
INSTITUTO FEDERAL 
SANTA CATARINA Tipagem de Dados 
Quanto é 2.147.483.647 + 1? 
• Algumas linguagens geram interrupção, outras não. 
• Este problema se agrava em números de ponto 
flutuante que são armazenados em notação científica: 
• Ex 1432 = 1,432 X 103 
A representação de dados numéricos e os erros associados a elas 
são abordados com maiores detalhes em cálculo numérico. 
:1: 
•• INSTITUTO FEDERAL 
S.\NTA CATAfllHA Tipagem de Dados 
descrever que um determinado símbolo, comando, função 
ou operador pode ser uti lizado para tarefas diferentes.Um operador é dito sobrecarregado quando o seu 
significado varia conforme o tipo dos seus operandos ou 
resultado. 
Operadores que aceitam números inteiros ou reais e 
retornam números inteiros ou reais 
• + • I 
·s: 
• INSTITUTO FEDERAL 
SAHTA CATARINA Tipagem de Dados 
realizar uma operação aritmética. 
É responsabilidade da linguagem de programação 
converter "seja lá o que o programador escreveu' para algo 
executável pelo processador 
Então, a verificação de tipos consiste em anal isar se os 
tipos de operandos são aceitos pelos operadores. 
INSTITUTO FEDERAL 
s.on~ CATARINA Tipagem de Dados 
registradores. 
registradores 
compatíveis podem ser utilizados para realizar uma operação 
aritmética. 
É responsabilidade da linguagem de programação converter 
"seja lá o que o programador escreveu' para algo executável pelo 
processador. 
Então, a verificação de tipos consiste em analisar se os tipos 
dos operandos são aceitos pelos operadores: 
int a; 
float b, e; 
e= a+ b; 
·s: 
• INSTITUTO FEDERAL 
SAHTA CATARINA Tipagem de Dados 
e usavam a tabela 
que ocupa 1 byte e 
• Linguagens mais atuais, como o Java, usa 
UNICODE (UTF-16). Atualmente existe a UTF-32 
que representa mais de 100 mil símbolos 
diferentes. 
• 
11: 
INSTITUTO FEDERAL 
SAHTA rATA.RINA Tipagem de Dados 
• Enumerações: possibilitam a associação de 
nomes a uma série de valores inteiros; 
• Facilitam a legibilidade do código e reduzem a 
chance de erro. 
No próximo slide é exibido um exemplo de enum na 
linguagem C++ . 
IN 
••• ••• Tipagem de Dados 
enum Cor {vermelh o = 1, verde, azul}; 
int main () { 
Cor escolh i d a = azul; 
switch (escolhida) { 
case vermelho: 
cout << "Pintar de vermelho: " <<escolhida<< endl; 
break; 
case verde : 
cout << ºPintar de verde: " <<escolhida<< endl; 
break; 
case azul: 
cout << ºPintar de azul: 11 <<escolhi da << endl; 
break; 
default : 
cout << "Cor não reconhecida\n" ; 
break; 
return O; 
11: 
INSTITUTO FEDERAL 
SANTA CATAR NA Tipagem de Dados 
Vetores/Arrays: ~ Todas as linguagens oferecem mecanismos, com 
trabalhar com conjuntos de dados variações, para 
indexados: 
• C/C++ os índices variam de O até N-1; 
• Fortran de 1 até N; 
• Em Pascal e Ada o programador é quem define. 
• Algumas linguagens como Java e C permitem a definição do 
tamanho do vetor em tempo de execução, mas uma vez 
criado, este tamanho não pode ser mudado. 
• C/C++ o vetor é acessível através de ponteiros. 
INSTITUTO FEDERAL 
SA>lTA CATAR NA Tipagem de Dados 
• Em C string é tratado como vetor de caractere: 
• char c; 
• char nome(10]; 
• Em C++ há uma classe string. 
• 
11: 
INSTITUTO FEDERAL 
SAHTA rATA.RINA Tipagem de Dados 
quais são acessados pelos seus nomes (campos); 
• Java não suporta estruturas diretamente, 
tratando-os como uma classe; 
• Diferem das classes pois possuem apenas os 
campos (atributos) mas não possuem métodos e 
outras características inerentes das classes na 
POO: 
• Exceção: C# permite a implementação de 
funções em estruturas; 
Tipagem de Dados 
---·-- ·- ----------------------------, 
struct pessoa { 
string nome; 
int idade; 
main () 
pessoa p; 
cou t << "Digite o nome: 11 ; 
cin >> p.nome; 
cou t << "Digite a idade : 11 ; 
cin >> p . i dade; 
Exemplo de 
estrutura em C++ 
cou t << "Você cadastrou: " << p.nome; 
cou t << 11 Idade : " << p . i dad e << endl; 
return O; 
Tipagem de Dados 
.,,,._.,., .. _""_"" _______________________________ ~ 
Program Cadastro (output ) ; 
type 
var 
pessoa= Record 
nome: string; 
idade: i nteger; 
End; 
p : pessoa; 
begin 
write ( ' Digite o nome: ' ); 
read (p . nome ) ; 
write ( ' Digite a idade : 1 ) ; 
read (p . i dad e ) ; 
write ( 'Você cadastrou: p . nome ) ; 
writeln ( '. Idade : ' , p . idade) ; 
end. 
Exemplo de 
registro em Pascal 
INSTITUTO FEDERAL 
Si\HT,\ CATARINA Conclusão 
Em essência, na computação tudo se resume a 
números em bits; 
A flexibilidade dada ao programador, durante o 
desenvolvimento, é implementada sempre pela 
linguagem de programação; 
• Diferentes linguagens implementam diferentes 
tipos de dados; 
O tipo de dado de uma variável pode ser estático 
ou dinâmico; 
• As linguagens implementam características que as 
ll:::~ ~!'! definem como fortemente ou fracamente tipadas. 
	Nome Identificadores e Tipagens (1)
	Nome Identificadores e Tipagens (2)
	Nome Identificadores e Tipagens (3)
	Nome Identificadores e Tipagens (4)
	Nome Identificadores e Tipagens (5)
	Nome Identificadores e Tipagens (6)
	Nome Identificadores e Tipagens (7)
	Nome Identificadores e Tipagens (8)
	Nome Identificadores e Tipagens (9)
	Nome Identificadores e Tipagens (10)
	Nome Identificadores e Tipagens (11)
	Nome Identificadores e Tipagens (12)
	Nome Identificadores e Tipagens (13)
	Nome Identificadores e Tipagens (14)
	Nome Identificadores e Tipagens (15)
	Nome Identificadores e Tipagens (16)
	Nome Identificadores e Tipagens (17)
	Nome Identificadores e Tipagens (18)
	Nome Identificadores e Tipagens (19)
	Nome Identificadores e Tipagens (20)
	Nome Identificadores e Tipagens (21)
	Nome Identificadores e Tipagens (22)
	Nome Identificadores e Tipagens (23)
	Nome Identificadores e Tipagens (24)
	Nome Identificadores e Tipagens (25)
	Nome Identificadores e Tipagens (26)
	Nome Identificadores e Tipagens (27)
	Nome Identificadores e Tipagens (28)
	Nome Identificadores e Tipagens (29)
	Nome Identificadores e Tipagens (30)
	Nome Identificadores e Tipagens (31)
	Nome Identificadores e Tipagens (32)
	Nome Identificadores e Tipagens (33)
	Nome Identificadores e Tipagens (34)
	Nome Identificadores e Tipagens (35)
	Nome Identificadores e Tipagens (36)
	Nome Identificadores e Tipagens (37)
	Nome Identificadores e Tipagens (38)
	Nome Identificadores e Tipagens (39)
	Nome Identificadores e Tipagens (40)
	Nome Identificadores e Tipagens (41)
	Nome Identificadores e Tipagens (42)
	Nome Identificadores e Tipagens (43)
	Nome Identificadores e Tipagens (44)
	Nome Identificadores e Tipagens (45)
	Nome Identificadores e Tipagens (46)
	Nome Identificadores e Tipagens (47)
	Nome Identificadores e Tipagens (48)
	Nome Identificadores e Tipagens (49)
	Nome Identificadores e Tipagens (50)
	Nome Identificadores e Tipagens (51)
	Nome Identificadores e Tipagens (52)
	Nome Identificadores e Tipagens (53)
	Nome Identificadores e Tipagens (54)
	Nome Identificadores e Tipagens (55)
	Nome Identificadores e Tipagens (56)
	Nome Identificadores e Tipagens (57)
	Nome Identificadores e Tipagens (58)
	Nome Identificadores e Tipagens (59)

Outros materiais