Professional Documents
Culture Documents
www.fiap.com.br
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Introduo
O que um computador?
Mquina que processa dados; Processar significa realizar operaes nos dados de entrada de forma a extrair informaes;
Dado: tudo que pode ser processado; Informao: o resultado do processamento, descreve um domnio fsico ou abstrato; Modelo de processamento de dados:
entrada Processamento sada
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Organizao de computadores
Basicamente todo computador pode ser dividido em seis unidades lgicas:
Unidade de entrada; Unidade de sada; Unidade de memria; Unidade lgica e aritmtica (ULA); Unidade central de controle (UC); Unidade central de processamento (UCP ou CPU central processing unit);
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Organizao de computadores
CPU
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
10
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Lgica de programao
Em desenvolvimento de sistemas computacionais muito se fala em lgica de programao, mas o que lgica de programao? Lgica o que faz sentido; Ao escrever um programa devemos tomar cuidado para que os passos para resolver o problema tenham uma certa ordem de execuo e tambm uma certa coerncia, ou seja, tem que fazer sentido, tem que ter lgica; A lgica de programao a tcnica de encadear pensamentos para atingir um determinado objetivo;
11
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Lgica de programao
O encadeamento gera uma sequncia lgica; por meio da lgica de programao que definimos a sequncia lgica de passos (instrues) que o computador ir seguir para resolver um determinado problema;
12
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Teste de lgica
Joo menor que Pedro. Pedro menor que Jos. Podemos afirmar ento que:
a) Joo maior que Jos. b) Joo igual a Jos. c) Jos maior que Joo. d) No podemos afirmar nada.
Qual o prximo nmero da srie: 0,25 0,125 0,0625? Qual o prximo nmero da srie: 1 1 2 3 5 8 ?
13
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Algoritmos
A palavra algoritmos o termo central na cincia da computao e em programao de computadores; Um algoritmo uma sequncia lgica e finita de instrues para se atingir a soluo de um problema; Exemplos de algoritmos no dia-a-dia: receita de bolo, tomar banho, trocar uma lmpada, etc...; Um algoritmo no representa, necessariamente, um programa de computador, mas um programa de computador um algoritmo que foi escrito em uma linguagem de programao;
14
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Exemplo de algoritmos
Algoritmo para calcular a mdia de trs valores inteiros:
Incio Fornecer o primeiro valor inteiro; Fornecer o segundo valor inteiro; Fornecer o terceiro valor inteiro; Somar os trs valores; Pegar o resultado da soma e dividir por 3; Mostrar o resultado obtido; Fim
15
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Algoritmos
De acordo com a figura do slide 2, um algoritmo apresenta trs partes: entrada, processamento e sada; Quais so as entradas do exemplo apresentado? Qual o processamento? Qual a sada?
16
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Exemplo de algoritmos
De forma resumida, temos:
Incio Fornecer o primeiro valor inteiro; entrada Fornecer o segundo valor inteiro; Fornecer o terceiro valor inteiro; Somar os trs valores; processamento Pegar o resultado da soma e dividir por 3; Mostrar o resultado obtido; sada Fim
17
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Exemplo de algoritmos
Analise o problema abaixo e descubra qual a cor do vestido de cada senhora:
Trs senhoras: dona Branca, dona Rosa e dona Violeta passeavam pelo parque quando dona Rosa disse: No curioso que estejamos usando vestidos de cores branca, rosa e violeta, embora nenhuma de ns esteja usando um vestido de cor igual ao seu prprio nome? Uma simples coincidncia respondeu a senhora com o vestido violeta
18
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Exemplo de algoritmos
Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais um de seus trs pertences, que so: um lobo, uma cabra e um pacote de alfafa. Em cada viagem s poder ir o homem e apenas um de seus pertences. A seguinte regra dever ser respeitada: o lobo no pode ficar sozinho com a cabra e nem a cabra sozinha com o pacote de alfafa. Escreva um algoritmo para fazer a travessia dos pertences que esto em uma margem do rio para a outra (uma travessia segura).
19
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Exemplo de algoritmos
Criar um algoritmo que mova trs discos de uma torre de Hani, que consiste em trs hastes (A, B e C), uma das quais serve de suporte para trs discos de tamanhos diferentes (1, 2 e 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo transferir os trs discos para outra haste. Escreva um algoritmo para resolver o problema apresentado.
20
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Representao de algoritmos
Um algoritmo pode ser representado basicamente de quatro formas diferentes:
Descrio narrativa; Pseudocdigo; Grficos: fluxogramas e Nassin-Shneiderman-Chapin; Linguagens de programao.
21
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
22
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
23
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
3
M >= 6
24
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
p1
p2
p3
M = (p1+p2+p3)/3
M >= 6
Aprovado Reprovado
Fim
25
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
26
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
27
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Linguagem de programao
Os primeiros programas de computadores eram escritos em linguagem de mquina; Linguagem de mquina representa um conjunto de instrues que todo computador possui e, que seu processador capaz de executar; Exige conhecimento sobre o funcionamento da mquina para escrever programas corretamente; Para facilitar a programao de computadores surgiram as linguagens de programao;
28
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Linguagem de programao
Uma linguagem de programao nada mais do que um conjunto de regras sintticas e semnticas utilizadas para escrever instrues para que o computador possa executar; O computador entende apenas a sua linguagem nativa: linguagem de mquina; Para que um programa possa ser executado, o cdigo fonte escrito em qualquer linguagem de programao deve ser traduzido para a linguagem de mquina; O processo de traduo realizado por um programa ou vrios programas;
29
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Linguagem de programao
O processo de traduo pode ser por compilao ou interpretao; Na compilao o cdigo fonte convertido integralmente para cdigo de mquina e depois executado. A execuo mais rpida, mas o cdigo dependente da plataforma; Linguagens compiladas: C, C++, C#, VB, Dephi, etc...;
30
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Anlise lexicogrfica (Scanner) Anlise sinttica e semntica (Parser) Gerador de cdigo intermedirio
31
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Linguagem de programao
No processo de interpretao, o interpretador traduz cada linha do cdigo fonte para cdigo de mquina e o executa imediatamente; A traduo e a interpretao ocorrem juntas; O cdigo gerado portvel, ou seja, no depende de sistema operacional; Por outro lado, a execuo mais lenta em relao ao processo de compilao; Exemplo de linguagens interpretadas: Java, C#, Python, PHP, 32 etc...;
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Linguagem de programao
As diversas linguagens de programao podem ser classificadas em baixo nvel e alto nvel; As linguagens de alto nvel foram desenvolvidas com o propsito comercial, facilitando e agilizando o processo de desenvolvimento; Exemplo de linguagens de alto nvel: Java, C#, Dephi, VB, PHP, etc...; As linguagens de baixo nvel so linguagens onde as instrues so baseadas em linguagem de mquina; Exemplo: assembly (no assembler);
33
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Curiosidades
O primeiro programa de computador foi criada por Ada Lovelace, filha do escritor ingls Lord Byron. Foi utilizado na calculadora programvel criada por Charles Babbage; Uma das primeiras linguagens de programao para computadores foi Plankalkl, criada na Alemanha Nazista; A primeira linguagem de alto nvel amplamente usada foi Fortan (criada em 1954); O primeiro compilador foi escrito por Grace Hopper em 1952 para a linguagem de programao A-0;
34
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Curiosidades
Em 1957 foi criada B-0, sucessora de A-0, que daria origem a Flow-Matic (1958), antecessora imediata de Cobol, de 1959; A linguagem de programao Simula 67 introduz o conceito de classes;
35
Bacharelado em Sistemas de Informao Algoritmos Introduo a Programao de Computadores Prof. Dr. Antonio Marcos SELMINI profselmini@uol.com.br
Bibliografia
DEITEL, Paul, DEITEL, Harvey. C Como Programar. 6 edio. So Paulo: Pearson Prentice Hall, 2011.
36