fundamentos de programação
DESCRIPTION
Fundamentos de Programação. Luiz Paulo Maia [email protected]. Conteúdo. Arquitetura Web Conceito de algoritmo Conceito de programa. Arquitetura Web. Arquitetura Centralizada. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/2.jpg)
22
Conteúdo
• Arquitetura Web
• Conceito de algoritmo
• Conceito de programa
![Page 3: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/3.jpg)
Arquitetura Web
![Page 4: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/5.jpg)
55
Arquitetura Cliente/Servidor
![Page 6: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/7.jpg)
77
Ferramentas na Camada 1
• Browser – HTML, CSS– Plugins: Flash, QuickTime, SilverLight – JavaScript, VBscript– Java, ActiveX
![Page 8: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/8.jpg)
88
Ferramentas na Camada 2
• Servidor Web– MS Internet Information Server (IIS)– Appache– Consultar http://news.netcraft.com/
![Page 9: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/9.jpg)
99
Ferramentas na Camada 3
• Servidor de Banco de Dados– Oracle– MS SQL Server e Access– MySQL– PostgreSQL
![Page 10: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/10.jpg)
Conceito de Algoritmo
![Page 11: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/17.jpg)
1717
Formas de Representação
• Fluxograma• Português estruturado
(portugol)
![Page 18: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/18.jpg)
1818
Exercício
• Criar um algoritmo para fazer ovos mexidos
![Page 19: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/25.jpg)
Conceito de Programa
![Page 26: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/26.jpg)
2626
Programação na Década 1940
![Page 27: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/29.jpg)
2929
Programa Armazenado
![Page 30: Fundamentos de Programação](https://reader033.vdocuments.site/reader033/viewer/2022061614/5681472a550346895db4623e/html5/thumbnails/30.jpg)
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#