Buscar

02 - PI - Variáveis

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 12 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 12 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 12 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

Paradigma	
  Imperativo	
  
Renata	
  Carvalho	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Paradigma	
  Imperativo	
  
•  Programas	
  centrados	
  no	
  conceito	
  de	
  um	
  
estado	
  (variáveis)	
  e	
  ações	
  (comandos)	
  que	
  
manipulam	
  o	
  estado	
  
•  Paradigma	
  também	
  denominado	
  de	
  
procedural	
  ou	
  estrutural,	
  por	
  incluir	
  sub-­‐
roOnas	
  ou	
  procedimentos	
  como	
  mecanismo	
  de	
  
estruturação	
  
•  Primeiro	
  paradigma	
  a	
  surgir	
  
•  Fortran	
  em	
  1954	
  
•  Ainda	
  é	
  muito	
  uOlizado	
   Paradigma	
  ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Paradigma	
  Imperativo	
  
Entrada	
   Saída	
  
Estado	
  
Programa	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Paradigma	
  Imperativo	
  
•  Exemplos	
  de	
  linguagens:	
  
•  Ada	
  
•  Algol	
  
•  Basic	
  
•  C	
  
•  Cobol	
  
•  Fortran	
  
•  Pascal	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Histórico	
  
•  Primeiras	
  linguagens	
  imperaOvas	
  
•  Linguagens	
  de	
  máquina	
  (assembly)	
  
•  1954-­‐1955:	
  Fortran	
  (FORmula	
  TRANslator)	
  
•  John	
  Backus	
  –	
  desenvolvido	
  para	
  a	
  IBM	
  704	
  
•  1958:	
  Algol	
  (ALGOrithmic	
  Language)	
  
•  1959:	
  Cobol	
  (COmmon	
  Business	
  Oriented	
  
Language)	
  
•  Desenvolvido	
  por	
  uma	
  comissão	
  do	
  governo	
  
americano	
  
•  Liderada	
  por	
  Grace	
  Hopper	
   Paradigma	
  ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Declaração	
  de	
  variáveis	
  Opadas	
  
•  Restringe:	
  
•  O	
  espaço	
  de	
  memória	
  a	
  ser	
  gasto	
  
•  Os	
  valores	
  que	
  a	
  variável	
  pode	
  assumir	
  
•  As	
  operações	
  possíveis	
  de	
  se	
  executar	
  
•  Questão	
  de	
  espaço	
  em	
  C	
  (32-­‐bits)	
  
•  char	
  =	
  1	
  byte	
  
•  short	
  =	
  2	
  bytes	
  
•  int	
  =	
  4	
  bytes	
  
“Once	
  a	
  programmer	
  has	
  
understood	
  the	
  use	
  of	
  variables,	
  
he	
  has	
  understood	
  the	
  essence	
  
of	
  programming.”	
  
(Edsger	
  Dijkstra)	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Quando	
  uma	
  variável	
  é	
  declarada,	
  ela	
  é	
  
associada	
  a	
  uma	
  localização	
  de	
  memória,	
  e	
  seu	
  
nome	
  se	
  torna	
  um	
  idenOficador	
  
•  l-­‐value:	
  localização	
  da	
  memória	
  (endereço)	
  
•  r-­‐value:	
  valor	
  armazenado	
  na	
  localização	
  dada	
  pelo	
  
l-­‐value	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Atribuição:	
  <Opo>	
  <id>	
  ou	
  <Opo>	
  <id>	
  =	
  
<expressão>	
  
•  Destruc(ve	
  update	
  
•  Sobrescreve	
  a	
  localização	
  idenOficada	
  com	
  o	
  valor	
  da	
  
expressão	
  
•  No	
  RHS	
  de	
  uma	
  atribuição,	
  usa-­‐se	
  o	
  r-­‐value;	
  no	
  
LHS,	
  usa-­‐se	
  o	
  l-­‐value	
  
•  Exemplo:	
  x	
  =	
  x	
  +	
  1	
  
•  Significado:	
  “Pegue	
  o	
  r-­‐value	
  de	
  x,	
  adicione	
  1	
  e	
  
armazene	
  o	
  valor	
  no	
  l-­‐value	
  de	
  x”	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Se	
  uma	
  expressão	
  não	
  tem	
  l-­‐value,	
  ela	
  não	
  
pode	
  aparecer	
  no	
  LHS	
  de	
  uma	
  atribuição	
  
•  Exercício	
  
•  Dar	
  exemplos	
  de	
  expressões	
  que	
  não	
  tenham	
  l-­‐
value	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Toda	
  expressão/atribuição	
  no	
  paradigma	
  
imperaOvo	
  pode	
  ser	
  visto	
  em	
  termos	
  do	
  l-­‐
value	
  e	
  r-­‐value	
  das	
  variáveis	
  
•  Constantes	
  e	
  nomes	
  de	
  array	
  em	
  C	
  
•  Têm	
  r-­‐value,	
  mas	
  não	
  tem	
  l-­‐value	
  (na	
  especificação	
  
C-­‐89,	
  são	
  ditos	
  terem	
  “l-­‐value	
  imutáveis”)	
  
•  Variáveis	
  
•  Têm	
  l-­‐value	
  e	
  r-­‐value	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Ponteiros	
  
•  Seus	
  r-­‐values	
  são	
  l-­‐values	
  de	
  outras	
  variáveis	
  
•  Em	
  C:	
  
•  &x	
  retorna	
  o	
  l-­‐value	
  de	
  x	
  
•  *p	
  retorna	
  o	
  r-­‐value	
  de	
  x	
  (se	
  p	
  é	
  um	
  ponteiro,	
  seus	
  r-­‐value	
  
é	
  o	
  l-­‐value	
  de	
  outra	
  variável,	
  nesse	
  caso	
  de	
  x)	
  
•  Sub-­‐roOnas	
  (funções	
  ou	
  procedimentos)	
  
•  Têm	
  l-­‐value,	
  mas	
  seus	
  r-­‐values	
  são	
  blocos	
  de	
  código	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis	
  
UNICAP	
  –	
  UNIVERSIDADE	
  CATÓLICA	
  DE	
  PERNAMBUCO	
   Renata	
  Carvalho	
  
Variáveis	
  
•  Exercício	
  
•  IdenOfique	
  os	
  l-­‐value	
  e	
  r-­‐value	
  do	
  trecho	
  de	
  código	
  
abaixo	
  (em	
  C).	
  
	
  int&	
  funcOon();	
  
	
  	
  
	
  int	
  n;	
  
	
  char	
  buffer[5];	
  
	
  n	
  =	
  5;	
  
	
  buffer[0]	
  =	
  ‘r’;	
  
	
  string	
  s1	
  =	
  “nome”,	
  s2	
  =	
  “renata”,	
  s3	
  =	
  “carvalho”;	
  
	
  s1	
  =	
  s2	
  +	
  s3;	
  
	
  int	
  *p	
  =	
  new	
  int;	
  
	
  funcOon()	
  =	
  0;	
  
	
  s1.size();	
  
Paradigma	
  
ImperaOvo	
  
Histórico	
  
Variáveis

Outros materiais