programação de computadores

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: others

Post on 16-Oct-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação de Computadores

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

Page 2: Programação de Computadores

Agenda

Introdução a Programação

Algoritmos VS Programa

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

Page 3: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

Algoritmo 1: Troca de pneu do carro

1. desligar o carro

2. pegar as ferramentas (chave e macaco)

3. pegar o estepe

4. desenroscar os 4 parafusos do pneu furado

5. suspender o carro com o macaco

6. desenroscar os 4 parafusos do pneu furado

7. colocar o estepe

8. enroscar os 4 parafusos

9. baixar o carro com o macaco

10. enroscar os 4 parafusos

11. guardar as ferramentas

Page 5: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

Algoritmo 2: Como fazer um bolo?

Page 7: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

Ínicio

Pi 3.1415;

leia R;

A Pi * (R * R);

escreva A;

Fim;

Page 12: Programação de Computadores

Algoritmos

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

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: Programação de Computadores

Algoritmos

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

Algoritmo 4:

Page 14: Programação de Computadores

Algoritmos Linguagem Natural

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

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: Programação de Computadores

Algoritmos Linguagem Natural

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

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: Programação de Computadores

Algoritmos Programação

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

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: Programação de Computadores

Algoritmo Programação

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

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: Programação de Computadores

Linguagens de Programação

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

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: Programação de Computadores

Linguagens de Programação

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

Classificação das Linguagens de Programação

Baixo Nível x Alto Nível

Compilada x Interpretada

Não Estruturadas x Estruturadas x Orientadas a Objeto

Procedurais x Funcionais

Linguagens Específica e Propósito Geral

Page 20: Programação de Computadores

Baixo Nível e Alto Nível

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

Page 21: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

Page 23: Programação de Computadores

Compilada e Interpretada

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

Page 24: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

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

Page 30: Programação de Computadores

Não estruturada e estruturadas

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

Page 31: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

Page 35: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens de Programações e suas

Características

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

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: Programação de Computadores

Linguagens mais utilizadas em 2014

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

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/in

dex.html

Page 39: Programação de Computadores

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

Page 40: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação C:

Médio Nível

Compilada

De propósito geral

Estruturada

Imperativa Procedural

Padronizada 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: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação Java:

Alto Nível

Compilada e Interpretada

De propósito geral

Orientada a Objeto

Desenvolvida na década de 90 por uma equipe de programadores

chefiada por James Gosling, na empresa Sun Microsystems.

Page 42: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação Objetive-C:

Alto Nível

Compilada

De propósito geral

Orientada a Objeto

Objective-C é apenas um conjunto de adições à linguagem C.

Page 43: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação C++:

Médio Nível

Compilada

De propósito geral

Orientada a Objeto

Imperativa Procedural

Bjarne Stroustrup desenvolveu o C++ em 1983 como um adicional

à linguagem C. Novas características foram adicionadas com o

tempo.

Page 44: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação PHP:

Alto Nível

Compilada e Interpretada

De propósito geral

Estruturada e Orientada a Objeto

Imperativa Procedural

Criado 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 naWorldWideWeb.

Page 45: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação C#:

Alto Nível

Compilada

De propósito geral

Orientada a Objeto

Desenvolvida pela Microsoft como parte da plataforma .NET.

Page 46: Programação de Computadores

Linguagens de Programações e suas

Características

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

Linguagem de Programação Assembly:

Baixo Nível

Compilada

De propósito geral

Não estruturada

Exemplo: MOV AL, 61h: tal instrução ordena que o valor

hexadecimal 61 (97, em decimal) seja movido para o registrador

'AL'.

Page 47: Programação de Computadores

Exercícios

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

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: Programação de Computadores

Exercícios

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

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áginaWeb.

2. Desenvolver um programa para robô.

3. Desenvolver um programa para uma loja de roupas.

Page 49: Programação de Computadores

Bibliográfica

Mais referência

http://www.ferrari.pro.br/home/documents/FFerrari-

CCechinel-Introducao-a-algoritmos.pdf