fundamentos de programação luiz paulo maia [email protected]

30
Fundamentos de Programação Luiz Paulo Maia [email protected]

Upload: internet

Post on 19-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

Fundamentos de Programação

Luiz Paulo Maia

[email protected]

Page 2: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

22

Conteúdo

• Arquitetura Web

• Conceito de algoritmo

• Conceito de programa

Page 3: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

Arquitetura Web

Page 4: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

44

Arquitetura Centralizada

• Existe um computador central de grande porte (mainframe) que executa a aplicação, consulta o banco de dados e exibe as saídas para os analistas e usuários

• Geralmente, utiliza-se “terminais burros” ou emuladores de terminal para o acesso ao sistema

Page 5: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

55

Arquitetura Cliente/Servidor

Page 6: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

66

Arquitetura Web

ConexãoHTTP

OracleMySQL

PostgresSQL Server

...

cliente servidor servidor

Conexãonativa

ou ODBC

ASP.NETPHPJSF...

aplicação dinâmica

1a. camada 3a. camada2a. camada

JavaScriptHTMLFlash

ActiveXApplet

Page 7: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

77

Ferramentas na Camada 1

• Browser – HTML, CSS– Plugins: Flash, QuickTime, SilverLight  – JavaScript, VBscript– Java, ActiveX

Page 8: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

88

Ferramentas na Camada 2

• Servidor Web– MS Internet Information Server (IIS)– Appache– Consultar http://news.netcraft.com/

Page 9: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

99

Ferramentas na Camada 3

• Servidor de Banco de Dados– Oracle– MS SQL Server e Access– MySQL– PostgreSQL

Page 10: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

Conceito de Algoritmo

Page 11: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1111

O que é um Algoritmo?

• Algoritmo é um conjunto finito de passos ou instruções cujo objetivo é solucionar determinado problema

• “Sequência ordenada e não ambígua de passos que levam a solução de um problema” Tremblay

• Não está associado necessariamente a computadores

Page 12: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1212

Algoritmos

• Exemplos: receita de bolo, utilização de um caixa eletrônico, chegar em um determinado endereço, validação de senha, ordenação alfabética de um conjunto de clientes, totalização das comissões de venda em um determinado mês, etc.

Page 13: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1313

Sequência de Passos

• Algoritmos são executados um passo após o outro na forma de sequência:

Passo 1

Passo 2

Passo 3

...

Page 14: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1414

Desvio

• Certos passos devem ser executados apenas em determinadas condições:

Se Condição

Então Passo 1

Senão Passo 2

Passo 3

Page 15: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1515

Repetição

• Existem situações onde um ou mais passos devem ser repetidos.

Enquanto Condição

Passo 1

Passo2

Page 16: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1616

Solucionando Problemas

• Entender o problema.

• Identificar entradas e saídas.

• Escrever a sequência de passos, condições e repetições necessárias para transformar as entradas em saídas usando uma linguagem algorítmica.

• Converter o algoritmo em um programa.

Page 17: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1717

Formas de Representação

• Fluxograma• Português estruturado

(portugol)

Page 18: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1818

Exercício

• Criar um algoritmo para fazer ovos mexidos

Page 19: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

1919

Solução v.1

• Pegar ingredientes

• Acender o fogo

• Quebrar os ovos

• Mexer os ovos

• Apagar o fogo

• Servir

Page 20: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2020

Solução v.2

• Pegar os ovos, gordura, sal, frigideira e colher

• Acender o fogo e colocar a frigideira

• Colocar a gordura

• Quebrar os ovos

• Colocar o sal

• Mexer os ovos

• Apagar o fogo

• Servir

Page 21: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2121

Solução v.3

• Pegar dois ovos, uma colher de sopa de gordura, meia colher de chá de sal, frigideira e uma colher de madeira

• Acender o fogo e colocar a frigideira• Colocar a gordura• Aguardar a gordura aquecer• Quebrar os ovos na frigideira• Colocar o sal nos ovos• Mexer os ovos com a colher até ficarem no ponto• Apagar o fogo• Servir

Page 22: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2222

Exercícios

• Criar um algoritmo para trocar o pneu de um carro

• Criar um algoritmo para trocar uma lâmpada de teto

Page 23: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2323

Solução• Ligar o pisca alerta• Estacionar e desligar o carro, se for o caso• Verificar se o freio de mão está puxado• Abrir a mala• Retirar o triângulo e colocá-lo na posição• Retirar o macaco, chave de roda e estepe• Utilizar a chave de roda para afrouxar os parafusos• Posicionar o macaco e levantar o carro• Retirar os parafusos com a chave de roda

• Retirar o pneu com problema

• Colocar o estepe e colocar os parafusos• Baixar o carro• Apertar os parafusos com a chave de roda• Guardar o pneu com problema, chave e macaco• Retirar e guardar o triângulo

Page 24: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2424

Solução• Se não houver lâmpada em casa então

Sair para comprar

• Verificar se há falta de energia

• Desligar interruptor

• Pegar a escala

• Posicionar a escada

• Subir a escada com a lâmpada

• Apoiar a lâmpada no último degrau

• Soltar a lâmpada queimada

• Colocar a lâmpada nova

• Descer a escada com a lâmpada queimada

• Testar a lâmpada

• Descartar a lâmpada queimada em local apropriado

• Guardar a escada

Page 25: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

Conceito de Programa

Page 26: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2626

Programação na Década 1940

Page 27: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2727

O que é um Programa?

• Programa é um algoritmo escrito em uma linguagem de programação.

• Linguagem de programação é uma linguagem artificial utilizada para especificar instruções para computadores.

• Como qualquer linguagem, é um conjunto de regras sintáticas e semânticas cujo objetivo principal é a comunicação.

Page 28: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2828

Arquitetura Von Neumann

• The von Neumann architecture is a design model for a stored-program digital computer that uses a central processing unit (CPU) and a single separate storage structure ("memory") to hold both instructions and data. It is named after the mathematician and early computer scientist John von Neumann. Such computers implement a universal Turing machine and have a sequential architecture.

• A stored-program digital computer is one that keeps its programmed instructions, as well as its data, in read-write, random-access memory (RAM). Stored-program computers were an advancement over the program-controlled computers of the 1940s, such as the Colossus and the ENIAC, which were programmed by setting switches and inserting patch leads to route data and to control signals between various functional units. In the vast majority of modern computers, the same memory is used for both data and program instructions. The mechanisms for transferring the data and instructions between the CPU and memory are, however, considerably more complex than the original von Neumann architecture.

• (Wikipedia, 2010)

Page 29: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

2929

Programa Armazenado

Page 30: Fundamentos de Programação Luiz Paulo Maia lpmaia13@gmail.com

3030

Tipos de Linguagens

• Linguagens compiladas– Existe um processo de compilação e geração de um

programa executável que pode ser executado pela UCP

– Ex: Delphi, Visual Basic (VB), C/C++, COBOL, Pascal

• Linguagens interpretadas – Não existe compilação nem programa executável

– Cada instrução do programa é interpretada e executada pela UCP

– Pode gerar problemas de desempenho

– Ex: JavaScript, Perl, PHP, Java, C#