curso engenharia civil modalidade superior instituto federal do sul de minas, câmpus pouso alegre...

49
Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Upload: internet

Post on 22-Apr-2015

109 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Curso Engenharia CivilModalidade Superior

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Professora Michelle Nery

Programação de Computadores

Page 2: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

AgendaIntrodução a Programação

Algoritmos VS Programa

2

Page 3: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

3

Um algoritmo pode ser definido como uma sequência finita de passos (instruções) para resolver um determinado problema.

Sempre que desenvolvemos um algoritmo estamos estabelecendo um padrão de comportamento que deverá ser seguido (uma norma de execução de ações) para alcançar o resultado de um problema.

Page 4: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

4

Algoritmo 1: Troca de pneu do carro1. desligar o carro2. pegar as ferramentas (chave e macaco)3. pegar o estepe4. desenroscar os 4 parafusos do pneu furado5. suspender o carro com o macaco6. desenroscar os 4 parafusos do pneu furado7. colocar o estepe8. enroscar os 4 parafusos9. baixar o carro com o macaco10. enroscar os 4 parafusos11. guardar as ferramentas

Page 5: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

5

Um algoritmo quando programado num computador é constituído pelo menos das 3 partes, sendo elas:Entrada de dados.Processamento de dados.Saída de dados.

Page 6: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

6

Algoritmo 2: Como fazer um bolo?

Page 7: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

7

Entrada são fornecidas as informações necessárias para que o algoritmo possa ser executado. Estas informações podem ser fornecidas no momento em que o programa está sendo executado.

Page 8: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

8

Processamento são avaliadas todas as expressões algébricas, relacionais e lógicas, assim como todas as estruturas de controle existentes no algoritmo (condição e/ou repetição).

Page 9: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

9

Saída todos os resultados do processamento (ou parte deles) são enviados para um ou mais dispositivos de saída, como: monitor, impressora, ou até mesmo a própria memória do computador.

Page 10: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

10

Algoritmo 3: Calcular a área de uma circunferência dada por

A = π * R2: Para calcular a área é necessário saber os valores do raio

R e do π. Considere que o valor de π é constante, sendo que o

mesmo poderá ser gravado dentro do próprio algoritmo. O valor do raio R deve ser informado pelo usuário pelo teclado. Entradas.

O processamento do algoritmo será a realização do cálculo π * R2 e a atribuição do resultado dessa expressão para a variável A. Processamento.

A saída do resultado, ou seja, o valor de A, deverá ser informada na tela do monitor. Saída.

Page 11: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

11

ÍnicioPi 3.1415;leia R;A Pi * (R * R);escreva A;

Fim;

Page 12: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

12

Os algoritmos também podem ser representados por fluxogramas.Cada ação ou situação é representada por uma

caixa. Tomadas de decisões são indicadas por caixas

especiais, possibilitando ao fluxo de ações tomar caminhos distintos.

Page 13: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos

13

Algoritmo 4:

Page 14: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos Linguagem Natural

14

A linguagem natural é a maneira como expressamos nosso raciocínio e trocamos informação.

Raramente constitui um sistema de regras rígidas que possa ser implementada numa máquina.

Page 15: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos Linguagem Natural

15

Ao contrário dos seres humanos, as máquinas são projetados para executar tarefas bem determinadas a partir de determinadas instruções.

Um computador é somente capaz de realizar estritamente as tarefas que lhe forem delegadas e que façam parte do conjunto daquelas ações que ele pode executar (instruções).

É necessário compreender que tipo de instruções podem ser executadas pelos computadores para que possamos programá-los, de modo que realizem a tarefa do modo desejado.

Page 16: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmos Programação

16

As instruções são determinadas por uma linguagem denominada linguagem de máquina. Linguagem composta somente por números binários.Dificílima de se compreender.

Existe uma linguagem representada por comandos, mas que reproduz as tarefas que serão executadas dentro do computador, a linguagem de montagem (assembly). Difícil de programar;Programas feitos para um determinado processador,

por conterem instruções específicas deste, não funcionarão em um processador de outro tipo.

Page 17: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Algoritmo Programação

17

Exemplo de um programa que escreve a frase “Olá Mundo” no monitor, usando linguagem de máquina.

Coluna da esquerda está o endereço relativo de memória.

Coluna do centro o programa escrito em linguagem de máquina.

Coluna da direita a representação em caracteres ASCII.

Page 18: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programação

18

Para facilitar a tarefa de programar um computador, foram criadas várias linguagens de programação.

Estas linguagens são um maneira de tentar escrever as tarefas que o computador vai realizar de maneira mais parecida com a linguagem natural.

Page 19: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programação

19

Classificação das Linguagens de ProgramaçãoBaixo Nível x Alto NívelCompilada x InterpretadaNão Estruturadas x Estruturadas x Orientadas a

ObjetoProcedurais x FuncionaisLinguagens Específica e Propósito Geral

Page 20: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Baixo Nível e Alto Nível

20

Page 21: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

21

Baixo Nível: Linguagens muito parecidas com linguagem de máquina, suas instruções parecem-se muito com aquelas que serão executadas pelo processador. Exemplo: linguagem de montagem (assembly).

Alto Nível: são as que guardam mais semelhanças com a linguagem natural. Exemplos: Pascal, C, Fortran, Java, Perl, Python, Lisp, PHP, entre outras.

Page 22: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

22

Page 23: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Compilada e Interpretada

23

Page 24: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

24

Compilada: o código-fonte do programa é lido por um programa chamado compilador, que cria um arquivo binário, executável diretamente pelo hardware da plataforma-alvo.

Compilador

Page 25: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

25

A Compilação é responsável por converter os comandos da linguagem de programação nas instruções em código de máquina que o processador poderá utilizar.

Page 26: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

26

Interpretada: programas escritos em linguagens interpretadas não são convertidos em um arquivo executável. Eles são executados utilizando um outro programa, o interpretador, que lê o código-fonte e o interpreta diretamente, durante a sua execução.

Page 27: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

27

Um interpretador “entrega” o código-fonte ao computador em uma linguagem de baixo nível sempre que o programa é executado. 

Cada execução do programa precisa ser novamente traduzido e interpretado.

Page 28: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

28

Você consegue executar um programa em C/C++ com extensão .exe na plataforma Linux?Código compilado

Você consegue executar um aplicativo Java na plataforma Linux e Windows?Código interpretado

Page 29: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

29

Page 30: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Não estruturada e estruturadas

30

Page 31: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

31

Não estruturadas: São linguagens de programação que não aceitam blocos de estruturas.Exemplo seria o uso do GOTO para substituir as

estruturas condicionais e de repetição.Linguagem puramente não estruturada:

Assembly.

Page 32: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

32

Estruturadas: E uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e iteração (esta última também é chamada de repetição), desenvolvida por Michael A. Jackson no livro "Principles of Program Design" de 1975.Linguagens que aceitam: C/C++, Pascal,

Basic,etc.Linguagens puramente estruturadas: Java,

Prolog.

Page 33: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

33

Orientadas a Objeto: foi criada para tentar aproximar o mundo real do mundo virtual.

Para isso, nada mais natural do que utilizar Objetos, afinal, nosso mundo é composto de objetos, certo?!

Linguagens de Programações e suas Características

Page 34: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

34

Page 35: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

35

Procedurais: paradigma de programação baseado no conceito de chamadas a procedimento. Procedimentos, também conhecidos como rotinas,

subrotinas, métodos, ou funções simplesmente contém um conjunto de passos computacionais a serem executados.

Um dado procedimento pode ser chamado a qualquer hora durante a execução de um programa, inclusive por outros procedimentos ou por si mesmo.

As linguagens procedurais mais comuns são o C, o Pascal e o Fortran.

Page 36: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

36

Funcionais: é um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis.

As linguagens funcionais mais conhecidas são o LISP e o Prolog

Diversas outras linguagens funcionais são encontradas na literatura, por exemplo, ASpecT, Caml, Clean, Erlang, FP, Gofer, Haskell, Hope, Hugs, Id, IFP, J, Miranda, ML, NESL, OPAL,e Sisal

Page 37: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

37

Linguagens Específica: dedicada à um domínio de problema particular. Linguagens para banco de dados: SQL, Clipper Linguagem para simulação: MATLAB Linguagem de scripts: Tcl/Tk, Perl Linguagens para formatação de texto: TeX/LaTeX, HTML,

Postscript, PDF, Propósito Geral: capaz de resolver qualquer

problema, de qualquer domínio. Linguagens de Programação

Page 38: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens mais utilizadas em 2014

38

O site TIOBE Software fez um estudo para analisar quais são as linguagens que estão sendo mais utilizadas em 2014.

Leia mais em: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Page 39: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

39

Page 40: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

40

Linguagem de Programação C:Médio NívelCompilada De propósito geralEstruturadaImperativa ProceduralPadronizada pela ISO, criada em 1972, por

Dennis Ritchie e Ken Thompson, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).

Page 41: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

41

Linguagem de Programação Java:Alto NívelCompilada e InterpretadaDe propósito geralOrientada a ObjetoDesenvolvida na década de 90 por uma equipe

de programadores chefiada por James Gosling, na empresa Sun Microsystems.

Page 42: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

42

Linguagem de Programação Objetive-C:Alto NívelCompiladaDe propósito geralOrientada a ObjetoObjective-C é apenas um conjunto de adições à

linguagem C.

Page 43: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

43

Linguagem de Programação C++:Médio NívelCompiladaDe propósito geralOrientada a ObjetoImperativa ProceduralBjarne Stroustrup desenvolveu o C++ em 1983

como um adicional à linguagem C. Novas características foram adicionadas com o tempo.

Page 44: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

44

Linguagem de Programação PHP:Alto NívelCompilada e InterpretadaDe propósito geralEstruturada e Orientada a ObjetoImperativa ProceduralCriado por Rasmus Lerdorf em 1995.Usada originalmente apenas para o

desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide Web.

Page 45: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

45

Linguagem de Programação C#:Alto NívelCompiladaDe propósito geralOrientada a ObjetoDesenvolvida pela Microsoft como parte da

plataforma .NET.

Page 46: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Linguagens de Programações e suas Características

46

Linguagem de Programação Assembly:Baixo NívelCompiladaDe propósito geralNão estruturadaExemplo: MOV AL, 61h: tal instrução ordena que

o valor hexadecimal 61 (97, em decimal) seja movido para o registrador 'AL'.

Page 47: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Exercícios

47

1. O que é algoritmo?2. Faça a representação de um algoritmo para

somar duas notas e mostre seu resultado na tela.

3. O que é programação?4. O que é uma linguagem compilada?5. O que é uma linguagem interpretada?6. Pesquise vantagens e desvantagens de um

código compilado e interpretado.

Page 48: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Exercícios

48

1. Pesquise na internet o código fonte de um determinado programa, nas seguintes linguagens: C/C++, PHP, Java, C# e Assembly. Lembrando que você deverá saber o que o programa faz.

2. Qual/quais linguagem(ns) de programação você usaria, sendo a mais apropriada, para os seguintes propósitos:

1. Criar uma página Web.2. Desenvolver um programa para robô.3. Desenvolver um programa para uma loja de

roupas.

Page 49: Curso Engenharia Civil Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores

BibliográficaMais referência

http://www.ferrari.pro.br/home/documents/FFerrari-CCechinel-Introducao-a-algoritmos.pdf