Introdução e Conceitos Básicos - wp.ufpel.edu.br · em códigos de linguagem de programação....

23
1 Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr. Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr. Disciplina de Programação Computacional para a Física Introdução e Conceitos Básicos

Transcript of Introdução e Conceitos Básicos - wp.ufpel.edu.br · em códigos de linguagem de programação....

1

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Disciplina de Programação Computacional para a Física

Introdução e Conceitos Básicos

2

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Computadores

História dos computadores:

Ábaco: seu primeiro registro é datado do ano de 5500 a.C., pelos povos que constituíam a Mesopotâmia

É considerado a primeira calculadora.

Régua de calcular: em 1638 depois de Cristo, um padre inglês chamado William Oughtred, criou uma tabela muito interessante para a realização de multiplicações muito grandes. A base de sua invenção foram as pesquisas sobre logaritmos, realizadas pelo escocês John Napier.

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

3

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Máquina de Hollerith: 1890, Hermann Hollerith desenvolveu uma máquina que lia cartões perfurados, para a realização do censo nos EUA.

Aproveitando todo o sucesso ocasionado por sua máquina, Hollerith fundou sua própria empresa, a Tabulation Machine Company, no ano de 1896. Após algumas fusões com outras empresas e anos no comando do empreendimento, Hoolerith veio a falecer. Quando um substituto assumiu o seu lugar, em 1916, o nome da empresa foi alterado para Internacional Business Machine, a mundialmente famosa IBM.

Computadores pré-modernos

Na primeira metade do século XX, vários computadores mecânicos foram desenvolvidos, sendo que, com o passar do tempo, componentes eletrônicos foram sendo adicionados aos projetos. Em 1931, Vannevar Bush implementou um computador com uma arquitetura binária propriamente dita, usando os bits 0 e 1. A base decimal exigia que a eletricidade assumisse 10 voltagens diferentes, o que era muito difícil de ser controlado. Por isso, Bush fez uso da lógica de Boole, onde somente dois níveis de voltagem já eram suficientes.

Computadores

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

4

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Computadores

Segunda Guerra mundial: grande incentivo no desenvolvimento de computadores, visto que as máquinas estavam se tornando mais úteis em tarefas de desencriptação de mensagens inimigas e criação de novas armas mais inteligentes. Entre os projetos desenvolvidos nesse período, o que mais se destacou foi o Mark I, no ano de 1944, criado pela Universidade de Harvard (EUA), e o Colossus, em 1946, criado por Allan Turing.

Colossus (Harvard)

Máquina de Turing

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

5

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Computação moderna: A computação moderna pode ser definida pelo uso de computadores digitais, que não utilizam componentes analógicos com base de seu funcionamento. Ela pode ser dividida em várias gerações.

Primeira geração (1946 — 1959)ENIAC

No ano de 1946, ocorreu uma revolução no mundo da computação com o lançamento do computador ENIAC (Electrical Numerical Integrator and Calculator), desenvolvido pelos cientistas norte-americanos John Eckert e John Mauchly. Esta máquina era em torno de mil vezes mais rápida que qualquer outra que existia na época.

Com o ENIAC, a maioria das operações eram realizadas sem a necessidade de movimentar peças de forma manual, mas sim pela entrada de dados no painel de controle. Cada operação podia ser acessada através de configurações-padrão de chaves e switches.

Computadores

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

6

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Segunda geração (1959 — 1964): Na segunda geração, houve a substituição das válvulas eletrônicas por transístores, o que diminuiu em muito tamanho do hardware. A tecnologia de circuitos impressos também foi criada, evitando que os fios e cabos elétricos ficassem espalhados por todo lugar. É possível dividir os computadores desta geração em duas grandes categorias: supercomputadores e minicomputadores.

IBM 7030 (primeiro super computador)Várias linguagens foram desenvolvidas para os

computadores de segunda geração, como Fortran, Cobol e Algol. Assim, softwares já poderiam ser criados com mais facilidade. Muitos mainframes (modo como as máquinas dessa época são chamadas) ainda estão em funcionamento em várias empresas no dias de hoje, como na própria IBM.

Computadores

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

7

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Terceira geração (1964 — 1970)

Utilização de circuitos integrados.

o IBM 360/91, lançado em 1967, sendo um grande sucesso em vendas na época. Esta máquina já trabalhava com dispositivos de entrada e saída modernos, como discos e fitas de armazenamento, além da possibilidade de imprimir todos os resultados em papel. O IBM 360/91 foi um dos primeiros a permitir programação da CPU por microcódigo, ou seja, as operações usadas por um processador qualquer poderiam ser gravadas através de softwares, sem a necessidade do projetar todo o circuito de forma manual.

Computadores

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

8

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Quarta geração (1970 até hoje)

A quarta geração é conhecida pelo advento dos microprocessadores e computadores pessoais, com a redução drástica do tamanho e preço das máquinas.

Altair 8800

Apple I

Apple II

Computadores

FONTE: https://www.tecmundo.com.br/tecnologia-da-informacao/1697-a-historia-dos-computadores-e-da-computacao.htm

9

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Computador Atual

MonitorDispositivo de saída

Teclado Mouse

CPUCentral de processamento

Dispositivos de entrada

10

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Computador: Conceito Clássico

HARDWARE

SOFTWARE

(partes físicas)

(programas)

11

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Computador: Conceito Clássico

A finalidade de um computador é receber, manipular e armazenar dados.

Fonte: Ascencio, A. F. G. e Campos, E. A. V., Fundamentos da Programação de computadores, Pearson, 2008

A finalidade de um computador é realizar o processamento de dados.

12

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Processamento de dados

Fonte: Ascencio, A. F. G. e Campos, E. A. V., Fundamentos da Programação de computadores, Pearson, 2008

Informações iniciais

Operações sobre as

informaçõesResposta

Dispositivosde entrada Memória (CPU) Dispositivo de

Saída

13

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Processamento de dados

O processamento de dados é realizado através de um programa ou vários programas interligados.

O processamento de dados é realizado através de um programa ou vários programas interligados.

Etapas para o desenvolvimento de um programa

Análise Algorítimo Codificação

O problema é estudado para definir os dados de entrada, o processamento e os dados de saída

O problema é estudado para definir os dados de entrada, o processamento e os dados de saída

Onde é utilizada uma ferramenta lógica paradescrever o problema com suas soluções.

Onde é utilizada uma ferramenta lógica paradescrever o problema com suas soluções.

O algoritmo é transformadoem códigos de linguagem deprogramação

O algoritmo é transformadoem códigos de linguagem deprogramação

14

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Programação de computadores é uma atividade que vem se

desenvolvendo há mais de 40 anos desde o surgimento das primeiras

linguagens de programação. Inicialmente, aprendia-se a programar

utilizando-se a própria linguagem como ferramenta. A linguagem Fortran,

criada em 1954, e com seu primeiro compilador em 1957, foi durante

muito tempo utilizada com este fim, inclusive no Brasil. Nas décadas de

60 e 70, com o aparecimento de algumas outras linguagens, o

Fluxograma, um método gráfico que hoje está em desuso, foi

grandemente utilizado em complemento ao anterior. Hoje em dia, depois

de centenas de linguagens de programação criadas e de vários métodos

para se representar a solução de problemas, aprende-se a programar

construindo e desenvolvendo algoritmos.

Programação

15

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Algoritmos

Exemplo: Experimento de Física 1

Passo 1: Reunir os equipamentos necessáriosPasso 2: Montar o aparato experimentalPasso 3: Realizar o experimentoPasso 4: Fazer a análise dos dados coletadosPasso 5: Fazer o relatório do experimentoPasso 6: Entregar o relatório.

Exemplo: Calcular a média de idade dos alunos de uma turma.

Passo 1: Ler as idades dos alunosPasso 2: Calcular a média das idadesPasso 3: Apresentar o resultado para a média

AÇÕES: são acontecimentos que, a partir de uma dado início, após um período de tempo finito, produz um estado final possível e bem definido.

Definição 1) Sequência ordenada e finita de operação para a realização de uma tarefa.Definição 1) Sequência ordenada e finita de operação para a realização de uma tarefa.

Definição 2) Sequência ordenada e finita de instrução ou operação para a solução de uma problema computacional.

Definição 2) Sequência ordenada e finita de instrução ou operação para a solução de uma problema computacional.

Definição 3) É a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.

Definição 3) É a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.

16

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Algoritmos

Representaçãoalgoritmo

conjunto de ações...

Fim algoritmoou

início

conjunto de ações..

Fim

ou

algoritmo

conjunto de ações...

fim_algoritmo

algoritmo

conjunto de ações...

fim_algoritmo

Todo o algoritmo tem um início bem definido e um fim após um período finito de tempo.Todo o algoritmo tem um início bem definido e um fim após um período finito de tempo.

O algoritmo não é a solução do problemas, mas sim a forma ou o meio de obtê-la.

Todos os três são possíveis e encontrados na literatura.

Utilizaremosesse padrãoem nossa disciplina

17

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Algoritmo – Formas de representação

Descrição narrativa

A sequência de ações para a solução do problema é montada usando uma linguagem natural (língua portuguesa, por exemplo).A sequência de ações para a solução do problema é montada usando uma linguagem natural (língua portuguesa, por exemplo).

● Vantagem: não é necessário aprender nenhum conceito novo, pois a língua natural já é bem conhecida.

● Desvantagem: a língua natural abre espaço para várias interpretações, o que posteriormente dificultará a transcrição do algoritmo para uma linguagem de programação propriamente dita (Fortran, C, C++).

18

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Algoritmo – Formas de representação

Fluxograma

Forma gráfica de apresentação dos algoritmos, onde as ações são representadas por formas geométricas predefinidasForma gráfica de apresentação dos algoritmos, onde as ações são representadas por formas geométricas predefinidas

● Vantagem: o entendimento de elementos gráficos é mais fácil que o entendimento de textos.

● Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante não apresenta detalhes, dificultando a sua transcrição para um programa em linguagem computacional.

19

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Algoritmo – Formas de representação

Pseudocódigo

Também chamada de linguagem estruturada, reúne um conjunto de ações (ou comandos), usando uma linguagem simples e genérica, não associada com uma linguagem de programação específica.

Também chamada de linguagem estruturada, reúne um conjunto de ações (ou comandos), usando uma linguagem simples e genérica, não associada com uma linguagem de programação específica.

● Vantagem: passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas da linguagem de programação que será utilizada.

● Desvantagem: é necessário aprender as regras do pseudocódigo.

20

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Fluxogramas

Símbolos gráficos mais utilizados

Símbolo utilizado para indicar o início e o fim do algoritmo.

Permite indicar o sentido do fluxo de dados. Serve exclusivamente para conectar os símbolos ou blocos existentes

Símbolo utilizado para indicar cálculos e atribuições de valores.

Símbolo utilizado para representar a entrada de dados.

Símbolo utilizado para representar a saída de dados.

Símbolo que indica que deve ser tomada uma decisão, indicando a possibilidade de desvios.

21

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Exemplo de algoritmos

Exemplo 1) Faça um algoritmo para mostrar o resultado da multiplicação de dois números.Exemplo 1) Faça um algoritmo para mostrar o resultado da multiplicação de dois números.

Descrição narrativa:

Passo 1) Receber os dois números que serão multiplicados

Passo 2) Multiplicar os números

Passo 3) Mostrar o resultado obtido na multiplicação

Descrição narrativa:

Passo 1) Receber os dois números que serão multiplicados

Passo 2) Multiplicar os números

Passo 3) Mostrar o resultado obtido na multiplicação

Descrição narrativa:

22

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Exemplo de algoritmos

Exemplo 1) Faça um algoritmo para mostrar o resultado da multiplicação de dois números.Exemplo 1) Faça um algoritmo para mostrar o resultado da multiplicação de dois números.

FluxogramaFluxograma

início N1 N2

M ← N1*N2

M Fim

Fluxograma:

23

Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.Programação Computacional para a Física – IFM – Dep. de Física – Fernando Simões Jr.

Exemplo de algoritmos

Exemplo 1) Faça um algoritmo para mostrar o resultado da multiplicação de dois números.Exemplo 1) Faça um algoritmo para mostrar o resultado da multiplicação de dois números.

Pseudocódigo

ALGORITMODECLARE N1, N2, M NUMÉRICOESCREVA “digite dois números”LEIA N1, N2M ← N1, N2ESCREVA “Multiplicação =” , MFIM_ALGORITMO

ALGORITMODECLARE N1, N2, M NUMÉRICOESCREVA “digite dois números”LEIA N1, N2M ← N1, N2ESCREVA “Multiplicação =” , MFIM_ALGORITMO