Buscar

slide1

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

2/18/14	
  
1	
  
MCG114	
  –	
  Programação	
  de	
  
Computadores	
  I	
  
	
  
	
  
Profa.	
  Janaína	
  Gomide	
  &	
  Prof.	
  Danilo	
  Freitas	
  
	
  
1	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:52	
  
Ementa	
  Básica	
  
1.  Componentes	
  básicos	
  de	
  um	
  computador	
  
2.  Introdução	
  à	
  Lógica	
  da	
  Programação:	
  	
  
–  Linguagens	
  de	
  programação	
  
–  Linguagem	
  de	
  máquina,	
  montagem	
  e	
  alto	
  nível	
  
–  Compiladores,	
  interpretadores	
  e	
  esquemas	
  híbridos	
  
–  Noção	
  de	
  dado	
  como	
  informação	
  codificada:	
  Bits	
  e	
  Bytes	
  	
  
–  Codificação	
  de	
  números	
  (sistemas	
  de	
  numeração)	
  
–  Cadeias	
  de	
  caracteres	
  
–  Conceito	
  de	
  algoritmos,	
  estruturas	
  de	
  dados	
  e	
  programas	
  
	
  
2	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Ementa	
  Básica	
  
3.  Elementos	
  de	
  programação:	
  
–  Tipos	
  básicos	
  e	
  expressões	
  numéricas	
  
–  Noção	
  de	
  variável	
  e	
  comando	
  de	
  atribuição	
  
–  Comandos	
  de	
  entrada	
  e	
  saida	
  (input	
  e	
  print)	
  
–  Condições:	
  operadores	
  relacionais,	
  comando	
  IF,	
  ELSE,	
  ELIF	
  
	
  
4.  Algoritmos	
  e	
  estruturas	
  de	
  dados	
  sequenciais	
  
–  Listas	
  
–  Comando	
  WHILE,	
  FOR	
  
–  Strings	
  e	
  tuplas,	
  dicionários	
  
–  Arquivos	
  
3	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Ementa	
  Básica	
  
5.  Programação	
  estruturada:	
  	
  
–  Funções	
  	
  
–  Recursão	
  
–  Estrutura	
  de	
  dados	
  abstratas	
  
–  Módulos	
  e	
  bibliotecas	
  
4	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
2	
  
Objeevos	
  
•  Desenvolver	
  Algoritmos	
  
•  Implementar	
  Algoritmos	
  em	
  uma	
  linguagem	
  de	
  
programação	
  (Python)	
  
•  Executar	
  programas	
  
•  Avaliar	
  seus	
  Resultados	
  
5	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Avaliação	
  
•  Prova	
  1	
  	
  (P1)	
  	
  -­‐	
  10/04/2014	
  
•  Prova	
  2	
  	
  (P2)	
  -­‐	
  	
  20/05/2014	
  
•  Prova	
  de	
  Reposição	
  (PR)	
  –	
  22/05/2014	
  
•  Prova	
  Final	
  –	
  29/05/2014	
  
•  Média	
  =	
  (P1	
  +	
  P2)/2	
  	
  -­‐	
  PR	
  subsetui	
  uma	
  das	
  notas	
  faltantes	
  
•  Se	
  Média	
  >=	
  7	
  à	
  Aprovado	
  
•  Se	
  Média	
  <	
  7	
  	
  	
  à	
  Prova	
  Final	
  
•  Se	
  Prova	
  Final	
  >=5	
  à	
  Aprovado	
  
•  Se	
  Prova	
  Final	
  <	
  5	
  à	
  Reprovado	
  
6	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Bibliografia	
  
7	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Introdução	
  à	
  Programação	
  com	
  Python:	
  
	
  algoritmos	
  e	
  lógica	
  de	
  programação	
  para	
  iniciantes	
  	
  
Nilo	
  Ney	
  Couenho	
  Menezes	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Algoritmos	
  e	
  Programação:	
  Teoria	
  e	
  Práeca	
  
Marco	
  Medina	
  e	
  Crisena	
  Fereg	
  
Bibliografia	
  
8	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
3	
  
	
  
	
  
01	
  –	
  Introdução	
  
	
  
	
  
	
  
9	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Algoritmo	
  
•  Procedimento	
  definido	
  passo	
  a	
  passo	
  para	
  a	
  
solução	
  de	
  um	
  problema	
  
•  Uma	
  sequência	
  detalhada	
  de	
  ações	
  a	
  serem	
  
executadas	
  para	
  realizar	
  uma	
  tarefa.	
  
	
  
10	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Algoritmo	
  (Trocar	
  Lâmpada)	
  
v Passo	
  1:	
  	
  	
  	
  Pegar	
  a	
  lâmpada	
  nova	
  
v Passo	
  2:	
  	
  	
  	
  Pegar	
  a	
  escada	
  
v Passo	
  3:	
  	
  	
  	
  Posicionar	
  a	
  escada	
  embaixo	
  da	
  lâmpada	
  
queimada	
  
v Passo	
  4:	
  	
  	
  	
  Subir	
  na	
  escada	
  coma	
  lâmpada	
  nova	
  
v Passo	
  5:	
  	
  	
  	
  Reerar	
  a	
  lâmpada	
  queimada	
  
v Passo	
  6:	
  	
  	
  	
  Colocar	
  a	
  lâmpada	
  nova	
  
v Passo	
  7:	
  	
  	
  	
  Descer	
  da	
  escada	
  
v Passo	
  8:	
  	
  	
  	
  Ligar	
  o	
  interruptor	
  
v Passo	
  9:	
  	
  	
  	
  Guardar	
  a	
  escada	
  
v Passo	
  10:	
  	
  Jogar	
  a	
  lâmpada	
  velha	
  no	
  lixo	
  
11	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Algoritmo	
  (Sacar	
  dinheiro)	
  
v Passo	
  1:	
  	
  	
  	
  Ir	
  até	
  o	
  caixa	
  eletrônico	
  
v Passo	
  2:	
  	
  	
  	
  Colocar	
  o	
  cartão	
  
v Passo	
  3:	
  	
  	
  	
  Digitar	
  a	
  senha	
  
v Passo	
  4:	
  	
  	
  	
  Solicitar	
  o	
  saldo	
  
v Passo	
  5:	
  	
  	
  	
  Se	
  o	
  saldo	
  for	
  maior	
  ou	
  igual	
  à	
  quanea	
  
desejada,	
  	
  
v sacar	
  a	
  quanea	
  desejada;	
  
v caso	
  contrário	
  sacar	
  o	
  valor	
  do	
  saldo	
  
v Passo	
  6:	
  	
  	
  	
  Reerar	
  dinheiro	
  e	
  cartão	
  
v Passo	
  7:	
  	
  	
  	
  Sair	
  do	
  caixa	
  eletrônico	
  
12	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
4	
  
Algoritmo	
  (Bolo	
  de	
  Chocolate)	
  
13	
  
Ingredientes	
  
•	
  4	
  xícaras	
  (chá)	
  de	
  farinha	
  de	
  trigo.	
  
•	
  2	
  xícaras	
  (chá)	
  de	
  açúcar	
  cristal.	
  
•	
  2	
  xícaras	
  (chá)	
  de	
  achocolatado.	
  
•	
  2	
  colheres	
  (sopa)	
  de	
  fermento	
  em	
  
pó.	
  
•	
  1	
  pitada	
  de	
  sal.	
  
•	
  3	
  ovos.	
  
•	
  2	
  xícaras	
  (chá)	
  de	
  água	
  morna.	
  
•	
  1	
  xícara	
  (chá)	
  de	
  óleo.	
  
•	
  Óleo	
  para	
  untar.	
  
•	
  Farinha	
  de	
  trigo	
  para	
  polvilhar.	
  
	
  
Modo	
  de	
  preparo	
  
•  Numa	
  vasilha,	
  misture	
  4	
  xícaras	
  (chá)	
  de	
  
farinha	
  de	
  trigo,	
  2	
  xícaras	
  (chá)	
  de	
  açúcar	
  
cristal,	
  2	
  xícaras	
  (chá)	
  de	
  achocolatado,	
  2	
  
colheres	
  (sopa)	
  de	
  fermento	
  em	
  pó	
  e	
  1	
  pitada	
  
de	
  sal	
  
•  Junte	
  3	
  ovos,	
  2	
  xícaras	
  (chá)	
  de	
  água	
  morna	
  e	
  1	
  
xícara	
  (chá)	
  de	
  óleo.	
  
•  Misture	
  bem.	
  	
  
•  Unte	
  uma	
  forma	
  retangular	
  de	
  25	
  cm	
  x	
  37	
  cm	
  
com	
  óleo	
  
•  Polvilhe	
  farinha	
  de	
  trigo	
  sobre	
  a	
  forma	
  untada	
  
•  Despeje	
  a	
  massa	
  na	
  forma	
  	
  
•  Asse	
  em	
  temperatura	
  média	
  (de	
  170°C	
  a	
  
180°C)	
  por	
  30	
  minutos.	
  
•  Sirva	
  o	
  Bolo	
  ao	
  Professor	
  na	
  próxima	
  aula.	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Programas	
  de	
  Computador	
  
14	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Programas	
  de	
  Computador	
  
•  Programa	
  de	
  Computador	
  =	
  Conjunto	
  de	
  instruções	
  que	
  
será	
   executado	
   pelo	
   processador	
   em	
   uma	
   determinada	
  
sequência.	
  	
  
•  Um	
  programa	
  é	
  que	
  um	
  epo	
  de	
  algoritmo.	
  	
  
•  Suas	
   operações	
   são	
   específicas	
   para	
   o	
   computador	
   e
restritas	
   ao	
   conjunto	
   de	
   instruções	
   que	
   o	
   processador	
  
pode	
  executar.	
  
	
  
15	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Linguagens	
  de	
  Programação	
  
	
  
	
  
16	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
5	
  
Linguagens	
  de	
  Programação	
  
	
  
	
  
17	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
•  L i n g u a g e n s	
   d e	
  
programação	
   de	
   alto	
  
nível	
   são	
   mais	
   próximas	
  
da	
  linguagem	
  natural	
  
•  Ex:	
  Java,	
  C,	
  Pascal,	
  Python	
  
	
  
•  Q u a n t o	
   m a i o r	
   a	
  
s e m e l h a n ç a	
   c o m	
  
linguágem	
   de	
   máquina,	
  
mais	
   baixo	
   é	
   o	
   nível	
   da	
  
linguagem	
  
16:53:53	
  
Linguagem	
  de	
  Montagem	
  
18	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
•  A	
   linguagem	
   de	
   montagem	
   (ou	
   assembly)	
   tem	
   uma	
  
instrução	
  alfanumérica	
  para	
  cada	
  instrução	
  numérica	
  na	
  
linguagem	
  de	
  máquina	
  
•  Assembly	
  também	
  é	
  uma	
  linguagem	
  de	
  baixo	
  nível	
  
•  Para	
  cada	
  processador	
  há	
  uma	
  linguagem	
  de	
  montagem	
  
16:53:53	
  
Linguagem	
  de	
  Alto	
  nível	
  
19	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
•  As	
  linguagens	
  de	
  alto	
  nível	
  foram	
  criadas	
  para	
  aumentar	
  
a	
  produevidade	
  do	
  programador	
  
•  São	
   independentes	
   do	
   processador	
   em	
   que	
   serão	
  
executados	
  	
  
16:53:53	
  
Executando	
  um	
  programa	
  
20	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
Compilador	
  
•  Gera	
   um	
  arquivo	
   com	
  o	
   código	
   em	
   linguagem	
  de	
  
máquina,	
  conhecido	
  como	
  código-­‐objeto	
  
•  Esse	
  código-­‐objeto	
  fica	
  em	
  disco	
  e	
  só	
  é	
  carregado	
  
na	
  memória	
  no	
  momento	
  da	
  execução	
  
16:53:53	
  
2/18/14	
  
6	
  
Executando	
  um	
  programa	
  
21	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
Interpretador	
  
•  Não	
  gera	
  o	
  arquivo	
  em	
  código-­‐objeto	
  
•  As	
   instruções	
   são	
   traduzidas	
   em	
   tempo	
   de	
  
execução,	
  instrução	
  a	
  instrução	
  
16:53:53	
  
Linguagens	
  compiladas	
  e	
  interpretadas	
  
22	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
•  Linguagens	
  compiladas	
  
	
  
•  Linguagens	
  interpretadas	
  
	
  
16:53:53	
  
Sistemas	
  Operacionais	
  
23	
  
•  Os	
   sistemas	
   operacionais	
   constroem	
   uma	
   camada	
   entre	
  
hardware	
  e	
  soyware	
  
•  O	
   sistema	
   operacional	
   gerencia	
   os	
   recursos	
   da	
   máquina,	
  
evitando	
   a	
  má	
   uelização	
   e	
   até	
  mesmo	
   a	
   danificação	
   de	
   seus	
  
componentes	
  por	
  um	
  programador	
  
•  Fornecem	
   uma	
   interface	
   para	
   que	
   outros	
   programas	
   possam	
  
uelizar	
  suas	
  roenas.	
  	
  
•  Essas	
   interfaces	
   são	
   conhecidas	
   como	
   chamadas	
   de	
   sistema,	
  
ou	
  system	
  calls,	
  e	
  o	
  conjunto	
  de	
  operações	
  disponibilizadas	
  são	
  
as	
  bibliotecas	
  do	
  sistema	
  operacional.	
  
Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Sistemas	
  Operacionais	
  
24	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
7	
  
Linguagens	
  de	
  programação	
  e	
  Sistemas	
  operacionais	
  
25	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
•  Sistemas	
   operacionais	
   fornecem	
   uma	
   interface	
   para	
   que	
  
outros	
  programas	
  possam	
  uelizá-­‐las	
  
•  Os	
   compiladores	
   uelizam	
   essas	
   interfaces	
   em	
   vez	
   de	
  
implementar	
  as	
  operações	
  complexas	
  por	
  si	
  mesmos	
  
•  Quando	
   o	
   compilador	
   encontra	
   chamadas	
   ao	
   SO	
   no	
   código-­‐
fonte	
   em	
   linguagem	
   de	
   alto	
   nível,	
   transforma-­‐as	
   em	
  
referências	
  “não	
  resolvidas”	
  
•  Para	
   que	
   possa	
   ser	
   executado	
   é	
   necessário	
   ligar	
   o	
   código	
  
objeto	
  ao	
  SO	
  
•  Esse	
  processo	
  é	
  chamado	
  de	
  ligação	
  do	
  código	
  ou	
  linking.	
  
16:53:53	
  
Linguagens	
  de	
  programação	
  e	
  Sistemas	
  operacionais	
  
26	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Java	
  e	
  Máquina	
  Virtual	
  (JVM)	
  
27	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  
•  A	
   linguagem	
   de	
   programação	
   Java	
   tem	
   uma	
   arquitetura	
  
diferente,	
  o	
  que	
  fornece	
  a	
  seus	
  programas	
  mais	
  portabilidade	
  
•  Não	
  gera	
  código	
  executável	
  em	
  nenhum	
  sistema	
  operacional	
  
•  Gera	
   um	
   código	
   intermediário	
   chamado	
   bytecode	
   que	
   é	
  
executado	
  na	
  Máquina	
  Virtual	
  Java	
  (JVM)	
  
•  A	
  JVM	
  faz	
  a	
  tradução	
  dos	
  bytecodes	
  para	
  código	
  executável	
  no	
  
SO	
  
•  Durante	
  a	
  execução	
  essa	
  tradução	
  é	
  feita	
  em	
  tempo	
  real	
  
16:53:53	
  
Máquina	
  Virtual	
  (JVM)	
  
28	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
8	
  
Linguagens	
  De	
  Programação	
  
29	
  
•  Diferentemente	
  da	
  linguagem	
  natural,	
  a	
  linguagem	
  de	
  
programação	
  é	
  dirigida	
  a	
  orientar	
  uma	
  máquina	
  e	
  não	
  pessoas.	
  
	
  	
  
•  Máquinas	
  	
  
–  não	
  podem	
  tomar	
  decisões	
  com	
  base	
  em	
  premissas.	
  	
  
–  não	
  podem	
  escolher	
  alternaevas,	
  mesmo	
  que	
  estas	
  nos	
  pareçam	
  óbvias	
  
–  não	
  podem	
  corrigir	
  comandos	
  mal	
  redigidos	
  
–  não	
  podem	
  descobrir	
  a	
  intenção	
  do	
  programador,	
  mesmo	
  que	
  ela	
  seja	
  
(ou	
  pelo	
  menos	
  pareça)	
  clara	
  no	
  contexto	
  
•  Pessoas	
  fazem	
  tudo	
  isso	
  (pelo	
  menos	
  na	
  maior	
  parte	
  das	
  
vezes)	
  sem	
  sequer	
  notar.	
  
Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Linguagens	
  De	
  Programação	
  
30	
  
•  A	
  linguagem	
  de	
  programação	
  precisa	
  ter	
  algumas	
  
caracterísecas	
  que	
  a	
  linguagem	
  natural	
  não	
  tem.	
  
–  Rigidez	
  sintá2ca	
  
–  Rigidez	
  semân2ca:	
  
Ø 	
  Sem	
  ambiguidades.	
  
	
  
•  A	
  linguagem	
  natural	
  apresenta	
  ambiguidades.	
  Exemplo:	
  “A	
  
velhinha	
  ouviu	
  o	
  barulho	
  da	
  janela”.	
  
1.	
  A	
  velhinha	
  ouviu	
  o	
  barulho	
  produzido	
  pela	
  janela.	
  
2.	
  A	
  velhinha	
  estava	
  junto	
  à	
  janela	
  e	
  ouviu	
  o	
  barulho.	
  
3.	
  A	
  velhinha	
  ouviu	
  o	
  barulho	
  que	
  veio	
  através	
  da	
  janela.	
  
Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Algoritmos	
  
31	
  
•  Alternaevas	
  para	
  expressar	
  algoritmos	
  para	
  
computador:	
  
– Fluxograma	
  
– Pseudocódigo	
  
Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Fluxograma	
  
32	
  Janaína	
  Gomide
&	
  Danilo	
  Freitas	
  16:53:53	
  
2/18/14	
  
9	
  
Pseudocódigo	
  
33	
  Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53	
  
Exercícios	
  
34	
  
1.	
  Defina	
  o	
  que	
  é	
  um	
  algoritmo.	
  
2.	
  Diferencie	
  um	
  algoritmo	
  de	
  um	
  programa.	
  
3.	
  Explique	
  como	
  um	
  programa	
  é	
  executado	
  em	
  um	
  computador.	
  
4.	
  Defina	
  o	
  que	
  é	
  uma	
  linguagem	
  de	
  programação	
  de	
  alto	
  nível	
  e	
  
uma	
  linguagem	
  de	
  programação	
  de	
  baixo	
  nível.	
  
5.	
  Explique	
  por	
  que	
  um	
  código	
  Java	
  é	
  portável	
  em	
  vários	
  sistemas	
  
operacionais.	
  
6.	
  Por	
  que	
  a	
  linguagem	
  natural	
  não	
  é	
  adequada	
  para	
  a	
  construção	
  
de	
  algoritmos	
  para	
  computador?	
  
7.	
  Quais	
  as	
  vantagens	
  e	
  desvantagens	
  da	
  uelização	
  de	
  fluxograma	
  
e	
  de	
  pseudocódigo	
  na	
  construção	
  de	
  algoritmos?	
  
Janaína	
  Gomide	
  &	
  Danilo	
  Freitas	
  16:53:53

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando