Fundamentos de Programação Luiz Paulo Maia [email protected] Conteúdo • Arquitetura Web • Conceito de algoritmo • Conceito de programa 2 Arquitetura Web 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 4 Arquitetura Cliente/Servidor 5 Arquitetura Web 1a. camada 2a. camada servidor cliente Conexão HTTP JavaScript HTML Flash ActiveX Applet … 6 3a. camada servidor ASP.NET PHP JSF ... aplicação dinâmica Conexão nativa ou ODBC Oracle MySQL Postgres SQL Server ... Ferramentas na Camada 1 • Browser – – – – 7 HTML, CSS Plugins: Flash, QuickTime, SilverLight JavaScript, VBscript Java, ActiveX Ferramentas na Camada 2 • Servidor Web – MS Internet Information Server (IIS) – Appache – Consultar http://news.netcraft.com/ 8 Ferramentas na Camada 3 • Servidor de Banco de Dados – – – – 9 Oracle MS SQL Server e Access MySQL PostgreSQL Conceito de Algoritmo 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 11 Algoritmos • 12 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. 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 ... 13 Desvio • Certos passos devem ser executados apenas em determinadas condições: Se Condição Então Passo 1 Senão Passo 2 Passo 3 14 Repetição • Existem situações onde um ou mais passos devem ser repetidos. Enquanto Condição Passo 1 Passo2 15 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. 16 Formas de Representação • Fluxograma • Português estruturado (portugol) 17 Exercício • Criar um algoritmo para fazer ovos mexidos 18 Solução v.1 • • • • • • 19 Pegar ingredientes Acender o fogo Quebrar os ovos Mexer os ovos Apagar o fogo Servir Solução v.2 • • • • • • • • 20 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 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 21 Exercícios • Criar um algoritmo para trocar o pneu de um carro • Criar um algoritmo para trocar uma lâmpada de teto 22 Solução • • • • • • • • • • • • • • • 23 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 Solução • • • • • • • • • • • • • 24 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 Conceito de Programa Programação na Década 1940 26 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. 27 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) 28 Programa Armazenado 29 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# 30