SlideShare una empresa de Scribd logo
1 de 7
CURSO SUPERIOR DE CIÊNCIA DA COMPUTAÇÃO

 PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

         PROFº. HEITOR KAZUO YOKOMIZO




               1811283419 – RAFAEL CIANCI DA SILVA
- FELIPE SEWAYBRICKER LOMBARDI
       1809308367 - FRANCISCO MARIANO DE C. NETO




           ATPS PARADIGMA DA LINGUAGEM




                    Sorocaba
                2012 – 8º Semestre
História e evolução da linguagem Fortran:

Pode-se classificar o Fortran como o "avô" de todas as linguagens computacionais
cientificas. O nome FORTRAN deriva de FORmula TRANslation, que indica que esta
linguagem estava destinada, desde o inicio, para a tradução de equações cientificas
numa linguagem computacional. Antes da existência desta linguagem, os programas
eram essencialmente escritos em linguagem de máquina, o que era um processo lento e
enfastiante. Fortran foi um produto verdadeiramente revolucionário. Inicialmente, o
programador podia prever o algoritmo desejado como uma série de equações algébricas
standard, e o compilador Fortran convertia em linguagem de máquina que o
computador reconhecia e executava. A linguagem Fortran original comparada com
outras versões mais modernas era bastante rudimentar. Continha apenas um número
limitado de tipos de declaração e suportava apenas as variáveis do tipo Real Data e
Integer, também não existiam subrotinas. Foi uma primeira tentativa para escrever
linguagem computacional de alto nível, no entanto foram encontradas muitas
deficiências pelos utilizadores regulares. Assim, a IBM desenvolveu o FORTRAN II em
1958. Desenvolvimentos posteriores continuaram durante 1962, quando o FORTRAN IV
foi disponibilizado. Este foi um grande passo e tornou-se a versão standard nos 15 anos
seguintes. Em 1966 FORTRAN IV foi adoptado como um ANSI ficando conhecido como
FORTRAN 66. A linguagem fortran sofreu outra grande alteração em 1977. FORTRAN
77 facilitava a escrita devido à melhor estrutura que esta linguagem apresentava,
tornando-se rápidamente O FORTRAN. Introduziu várias estruturas , tais como: o bloco
IF; e foi a primeira versão onde as variáveis CHARACTER eram mais fáceis de
manipular. Mais tarde, surgiu uma nova versão, o FORTRAN 90. Esta linguagem não é
tão rígida como o FORTRAN 77. Em 1997 apareceu o FORTRAN 95. Este acrescenta
novas características à linguagem fortran, como por exemplo: construções FORALL,
funções puras e alguns novos procedimentos intrísecos. Em conjunto clarifica inúmeras
ambiguidades no FORTRAN 90 standard.

Observações:
Um programa completo em fortran é composto pelo programa principal e por um
qualquer número de sub-programas. Existem dois tipos de sub-programas:
Subroutine - é caracterizada por uma lista de argumentos e é chamada no programa
principal através da instrução CALL. Functions - esta apresenta como resultado um
único valor e é chamada no programa principal através do nome que lhe foi atribuído.
Os sub-programas deverão ser agrupados no final do programa principal.

As variáveis ou constantes podem ser:
 Integer- número inteiro (positivo, negativo ou nulo), que pode ser representado por um
conjunto de dígitos que não contém aspas, nem ponto decimal.
Real - as variáveis deste tipo podem ser representadas com números com ponto decimal
ou com notação exponencial. As aspas não são válidas.
 Character - as variáveis deste tipo são incluídas entre apóstrofes ou aspas. O número
de caracteres constitui o comprimento da variável.
 Logical - variáveis do tipo: .TRUE. ou .FALSE..
Há ainda a considerar outros tipos, tais como: Complex, Double Precision.
Geralmente utiliza-se a instrução IMPLICIT NONE, a qual obriga a que o utilizador
tenha que declarar todas as variáveis. Os identificadores são nomes usados para
identificar programas, constantes, variáveis, etc. Estes devem começar por uma letra,
seguido de outras letras, dígitos ou underscores.
Instruções de transferência de controlo e outras:
Program - esta instrução só aparece como a primeira instrução do programa principal.
 Stop - suspende a execução do programa.
 Pause - suspende temporariamente a execução do programa.
 Continue - esta instrução não tem qualquer efeito no que respeita ao resultado da
execução do programa.
 Return - esta instrução permite sair do subprograma, voltando ao local onde é efectuada
a chamada do mesmo subprograma.
 Rewind - permite voltar ao inicio de um ficheiro de dados, mesmo depois de já terem
sido lidos alguns dados do mesmo.
 End - termina uma unidade do programa (programa principal ou um subprograma).
 If
 If aritmético
 If lógico
 If then
 If then else
Else if
 ....
End if
Ciclo Do
....
 End Do ou Continue

Estrutura de um programa exemplo em FORTRAN:
Program exemplo
Implicit none
Declaração das variáveis
Leitura e escrita de dados
Algoritmo do problema
Escrita dos resultados
End program

EQUAÇÕES NÃO LINEARES:
A resolução de equações não lineares, pode ser utilizada, por exemplo, para determinar
as raízes de uma dada equação f(x)=0 , isto é, os zeros da função ou ainda obter o vector
solução de um determinado sistema. Ao contrário do que sucede com as equações
algébricas lineares e quadráticas não se conhecem fórmulas explicitas para as soluções
destas equações. Assim recorre-se a métodos aproximados para as resolver. Para
problemas cuja determinação da solução é difícil e não exata utilizam-se métodos
iterativos para o efeito. Nos métodos iterativos parte-se de uma aproximação inicial da
solução e utiliza-se um processo que permite calcular uma aproximação melhorada. Este
processo é repetido até que o valor calculado se aproxime da solução exata do problema
em questão, satisfazendo o critério de precisão estabelecido. Os métodos, para resolução
de equações não lineares, podem ser classificados como:

Métodos com delimitação prévia da solução:
Método da bissecção;
Método da falsa posição
Método da falsa posição modificada;
Método de Muller.

Métodos abertos:
Método da secante;
Método de Newton;
Método de Richmond;
Método das substituições sucessivas;
Método de Steffensen.

Os métodos com delimitação prévia da solução convergem sempre. Neste caso (à
excepção do método de Muller) a solução é delimitada no intervalo genérico [a;b], tal
que:

f(a).f(b)<0

Ao contrário dos primeiros, os métodos abertos não necessitam de uma delimitação
prévia, mas apenas uma aproximação inicial à solução. Estes métodos podem não
convergir, sendo que alguns têm uma condição que assegura a sua convergência.Este
trabalho incidirá sobre o método da bissecção:

Método da bissecção:
Permite a construção de subintervalos por divisões sucessivas a metade e relativamente
aos quais se verifica a condição de o produto dos seus valores na função seja menor que
zero. Desta forma confirma-se um zero da função f a intervalos tão pequenos quanto
desejados. É um método de fácil implantação (não necessita do conhecimento de
derivadas) mas que por vezes apresenta uma convergência muito lenta. A ordem de
convergência é linear (p=1) e a razão de convergência c=0.5.

Histórico
FORTRAN é a mais antiga das linguagens de programação de alto nível podendo ser
considerada a mãe de quase todas linguagens de programação moderna. Foi criada em
1956 por Jonh Backus como a 1ª tentativa de padronizar a programação de
computadores que era feita até aquele momento apenas em assembly.
FORTRAN foi desenvolvida inicialmente para resolução de problemas científicos e
matemáticos, sendo muito utilizada ainda nos meios técnicos-científicos. O primeiro
compilador FORTRAN representou um marco na história da Computação, no tempo em
que computadores tinham bem pouca memória (da ordem de 15 kb mais ou menos),
eram bastante lentos e tinham Sistemas Operacionais primitivos (quando tinham um).
Naquele tempo, a única forma conhecida de se programar um computador era através da
linguagem Assembly. Os pioneiros do FORTRAN não tinham idéia do potencial da
linguagem que estavam criando, e nem sequer sonhavam em escrever programas em
linguagem de alto nível, mas sem querer, eles criaram a primeira Linguagem de Alto
Nível bem sucedida. O primeiro compilador FORTRAN foi projetado e escrito em
1954-1957 pela IBM por um grupo liderado por John W. Backus e contou com a
participação de excelentes programadores como Sheldon F. Best, Harlan Herrick, Peter
Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Richard Goldberg, Lois Haibt and
David Sayre. Backus também foi responsável pelo projeto do primeiro computador a
usar o FORTRAN, o IBM 704. A invenção ficou famosa rapidamente, o que não era de
se admirar, visto que programas que levavam semanas para serem escritos poderiam
agora ser feitos em questão de horas, além de exigir muito menos trabalho. Outra grande
vantagem da invenção era a portabilidade dos programas escritos em FORTRAN. A
linguagem foi adotada pelas comunidades militares e usada extensivamente em
programas espaciais e projetos militares. Como os computadores naquele tempo eram
usados quase que exclusivamente para cálculos e por pessoas do meio acadêmico e
científico, a linguagem foi desenvolvida sem praticamente nenhuma preocupação com
estruturação lógica ou clareza em sua codificação que facilitasse a escrita de programas
grandes, mesmo porque não havia programas realmente grandes naquela época.
FORTRAN passou por algumas grandes revisões:

FORTRAN IV (FORTRAN 66)
Esta versão foi feita em meados da década de 60 e foi a primeira padronização da
linguagem, que gerou um grande número de versões diferentes a partir dela. Programas
escritos em FORTRAN 66 são raros hoje em dia.

FORTRAN 77
Uma grande reformulação foi feita em meados da década de 70 e várias novas
características foram adicionadas à versão anterior. A versão FORTRAN 77 foi o
grande apogeu dessa linguagem de programação por assim dizer e há mais programas
escritos nesta versão do que em qualquer outra de suas revisões, mesmo as mais
recentes.

FORTRAN 90
No final da década de 80, a versão 90 do FORTRAN foi elaborada, embora outras
linguagens de programação mais modernas tivessem tomado conta do mercado, quase
que substituindo completamente sua utilização. Muitas características novas foram
acrescentadas a esta versão, como por exemplo recursão, ponteiros e o tipo de dado
TYPE, o qual permite uma maior abstração dos dados. Além disso, algumas das
restrições anteriores foram retiradas.

FORTRAN 95, F
A versão mais recente do FORTRAN trás como novidade nessa linguagem a
possibilidade de se trabalhar orientado a objetos e várias outras características novas.
Alguns críticos argumentam que essa é uma tentativa de criar uma linguagem moderna
de programação totalmente baseada em FORTRAN.

História

Algol
Em 1957 as linguagens de programação estavam surgindo aos montes.
Indústrias Ynham seus padrões, Universidades Ynham seus padrões, Havia muitos
padrões, e nenhuma padronização, Algol surgiu para acabar com isto, Universal,
independente de máquina, Um comitê internacional foi criado em 1958, para estabelecer
o projeto, Muitos Algols, No final das contas, três projetos: Algol 58, Algol 60 e Algol
68. Os comitês foram ficando cada vez maiores e mais estrelados.

A longa herança
Quase toda linguagem que surgiu depois de 1958 usa
idéias de Algol: Blocos delimitadores, Estrutura léxica de formato livre, Sintaxe
definida via BNF, Escopo de bloco para variáveis locais, Tipagem estáYca com
anotações de Ypo, If‐then‐else’s aninhados, Chamada por valor, Recursão e expressões
condicionais, Alocação dinâmica de memória, Procedimentos de primeira classe,
Operadores definidos pelo usuário.
Polêmicas
As primeiras linguagens usavam rótulos e goto’s para criar desvios de fluxo. Algol e
similares vieram com uma nova proposta, baseada em estruturas de controle. Houve
muita polêmica. Em 1968, Edsgar Dijkstra escreveu um arYgo muito famoso: “Go to
statement considered harmful”.

A Programação Estruturada
A programação baseada em estruturas de controle, em vez de rótulos, é chamada
programação estruturada. Muitos programadores achavam difícil programar sem
go‐tos. Hoje a polêmica parece ter chegado ao final, Algumas linguagens, como Java,
nem possuem goto’s, E mesmo em linguagens onde go‐to’s existem, os programadores
raramente os usam. Esta polêmica toda surgiu com Algol.

Ortogonalidade
O projeto de Algol tentava ao máximo evitar casos especiais: Sintaxe independende da
forma dos programas. Eliminação de limites arbitrários: nomes podem ter qualquer
amanha, arranjos podem ter qualquer número de dimensões, etc. – Ortogonalidade:
conceitos podem ser combinados de qualquer forma. Ex.: declaração de parâmetros =
declaração de variáveis, arranjos de qualquer Ypo primiYvo, registros com quaisquer
campos, etc.

Exemplo de Ortogonalidade

                           Integers   Arrays   Procedures
Passar como parâmetro         x        x          x
Armazenar em variável          x        x          x
Armazenar em arranjo          x        x           x
Retornar de uma função        x        x          x

Cada combinação proibida é um caso especial, que precisa ser lembrado pelo
programador. Em Algol 68 todas as combinações acima são
possíveis. Poucas linguagens modernas levam ortogonalidade tão a sério quanto Algol.

Más noticias
Algol nunca foi tão usada quanto se esperaria, – Algol 58 deu origem a Jovial, Algol 60
foi usada como padrão de publicação de algoritmos.

Razões do insucesso:
O projeto negligenciou entrada/saída, A linguagem era considerada complicada, Alguns
erros: passagem por nome, Não havia suporte coorporaYvo ou governamental.

John Backus desenvolveu a Forma Normal de Backus, conhecido como BNF, para
descrever ALGOL 58. O método foi revisado e expandido por Peter Naur, recebendo
então o nome de Forma de Backus-Naur, e mantendo a sigla. C.A.R. Hoare disse de
ALGOL 60: "Aqui está uma linguagem tão a frente de seu tempo, que não foi uma
melhoria sobre seus predecessoras, mas também a quase todas suas sucessoras". Essa
fala foi também uma crítica velada a ALGOL 68, uma linguagem considerada inchada
demais por muitos de seus críticos (e que não teve praticamente nenhum sucesso
comercial).
Impacto
A definição do ALGOL 60 foi um evento-chave na história das linguagens de
programação. Foi a primeira linguagem de Programação estruturada. Nenhuma outra
linguagem teve influência tão importante nos projetos de novas linguagens.
Além disso, a especificação da linguagem também criou desafios técnicos para a
construção de compiladores, como mais tarde aconteceria com PL/I e Ada

Características
As duas características principais do Algol são: a clareza e a elegância da sua estrutura
baseada nos blocos e o estilo de sua definição, que usa uma linguagem metalingüística
para definir de forma concisa e relativamente completa a sua sintaxe. A linguagem
continuou sendo desenvolvida e enriquecida com novas construções e novos comandos
que aumentaram seu potencial. Existem outras versões do Algol, como, por exemplo, o
Algol 68, o Algol W voltado para máquinas IBM e o Algol 6000/7000 da Burroughs.

ALGOL e Burroughs
12(definição de arquivos e seus atributos, comandos para manipulação de arquivos e
variedade de formatos)[1], facilidades para o tratamento de cadeias de caracteres (tipo
string, tipo POINTER (ou Ponteiro), comandos e funções para manipulação de cadeias),
acesso a bits de memória (palavra parcial) e facilidade para definir macros (declaração
DEFINE). Esta linguagem se tornou apropriada para escrever software básico; em
particular o sistema operacional do B6700 (MCP – "Master Control Program" está
escrito em ESPOL, uma extensão do Algol, permitindo manipulações mais perto do
hardware. Há uma outra extensão, o DCALGOL, Data Communications ALGOL, usado
para escrever software de comunicação de dados.

Variantes Padrões
ALGOL 58, primeira proposta da linguagem
ALGOL 60, versão mais conhecida da linguagem
ALGOL 68, versão bem mais poderosa, porém menos conhecida


Referências bibliográficas :
CHAPMAN,S. J. ,"Introduction to fortran 90/95", McGraw-Hill, 1997;
GERALD,C. F. ; WHEATLEY,P. O. , "Applied numerical Analysis", 5th ed., Addison-
Wesley Publishing Company, Nova Iorque (

Más contenido relacionado

La actualidad más candente

Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoSandro Lopes
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação12anogolega
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Algoritmos e lógica de programação com Python
Algoritmos e lógica de programação com PythonAlgoritmos e lógica de programação com Python
Algoritmos e lógica de programação com PythonBruno Luvizotto Carli
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoWeldir Fernando Dias
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 

La actualidad más candente (18)

Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Programação 1
Programação 1Programação 1
Programação 1
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
prolog
prologprolog
prolog
 
1.1.paradigmas
1.1.paradigmas1.1.paradigmas
1.1.paradigmas
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
02 historia da programação
02   historia da programação02   historia da programação
02 historia da programação
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Algoritmos e lógica de programação com Python
Algoritmos e lógica de programação com PythonAlgoritmos e lógica de programação com Python
Algoritmos e lógica de programação com Python
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Apostila linguagem pascal
Apostila linguagem pascalApostila linguagem pascal
Apostila linguagem pascal
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 

Destacado

Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacaopablogranola
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoJosé Meirelles
 
Atividade colaborativa estratégia dinâmica e competitiva paulo rogerio
Atividade colaborativa estratégia dinâmica e competitiva paulo rogerioAtividade colaborativa estratégia dinâmica e competitiva paulo rogerio
Atividade colaborativa estratégia dinâmica e competitiva paulo rogerioCisco Kunsagi
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Atps tecnicas de negociacao - modelo 2013
Atps   tecnicas de negociacao - modelo 2013Atps   tecnicas de negociacao - modelo 2013
Atps tecnicas de negociacao - modelo 2013Cristina Martins
 
Padrão de trabalho desafio profissional matemática e processos gerenciais 2014
Padrão de trabalho desafio profissional matemática e processos gerenciais 2014Padrão de trabalho desafio profissional matemática e processos gerenciais 2014
Padrão de trabalho desafio profissional matemática e processos gerenciais 2014Alisson Martins
 
Projeto tcc-faculdade de pedagogia-2014
Projeto tcc-faculdade de pedagogia-2014Projeto tcc-faculdade de pedagogia-2014
Projeto tcc-faculdade de pedagogia-2014Andre Silva
 
Manual de estágio_supervisionado
Manual de estágio_supervisionadoManual de estágio_supervisionado
Manual de estágio_supervisionadoADRIANA BECKER
 

Destacado (10)

Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliação
 
Atividade colaborativa estratégia dinâmica e competitiva paulo rogerio
Atividade colaborativa estratégia dinâmica e competitiva paulo rogerioAtividade colaborativa estratégia dinâmica e competitiva paulo rogerio
Atividade colaborativa estratégia dinâmica e competitiva paulo rogerio
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Paradigmas do Ruby
Paradigmas do RubyParadigmas do Ruby
Paradigmas do Ruby
 
Atps tecnicas de negociacao - modelo 2013
Atps   tecnicas de negociacao - modelo 2013Atps   tecnicas de negociacao - modelo 2013
Atps tecnicas de negociacao - modelo 2013
 
Padrão de trabalho desafio profissional matemática e processos gerenciais 2014
Padrão de trabalho desafio profissional matemática e processos gerenciais 2014Padrão de trabalho desafio profissional matemática e processos gerenciais 2014
Padrão de trabalho desafio profissional matemática e processos gerenciais 2014
 
Normatização para Trabalhos Acadêmicos
Normatização para Trabalhos AcadêmicosNormatização para Trabalhos Acadêmicos
Normatização para Trabalhos Acadêmicos
 
Projeto tcc-faculdade de pedagogia-2014
Projeto tcc-faculdade de pedagogia-2014Projeto tcc-faculdade de pedagogia-2014
Projeto tcc-faculdade de pedagogia-2014
 
Manual de estágio_supervisionado
Manual de estágio_supervisionadoManual de estágio_supervisionado
Manual de estágio_supervisionado
 

Similar a Resolução de equações não lineares com o método da bissecção em Fortran

paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfAmlieOGalaxias
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptxbrayankedroksi
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
Apostila de algoritimo super básica
Apostila de algoritimo super básicaApostila de algoritimo super básica
Apostila de algoritimo super básicaPablo Verlly Moreira
 
Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Romário santos
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 

Similar a Resolução de equações não lineares com o método da bissecção em Fortran (20)

paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
 
Pascal 70
Pascal 70Pascal 70
Pascal 70
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
Apostila de algoritimo super básica
Apostila de algoritimo super básicaApostila de algoritimo super básica
Apostila de algoritimo super básica
 
Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01
 
MD_Fortran.pdf
MD_Fortran.pdfMD_Fortran.pdf
MD_Fortran.pdf
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
LP002 - AULA 1.potx
LP002 - AULA 1.potxLP002 - AULA 1.potx
LP002 - AULA 1.potx
 
LP003 - AULA 2.potx
LP003 - AULA 2.potxLP003 - AULA 2.potx
LP003 - AULA 2.potx
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Bioestatistica usando R
Bioestatistica usando RBioestatistica usando R
Bioestatistica usando R
 
Lp m2
Lp m2Lp m2
Lp m2
 

Resolução de equações não lineares com o método da bissecção em Fortran

  • 1. CURSO SUPERIOR DE CIÊNCIA DA COMPUTAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PROFº. HEITOR KAZUO YOKOMIZO 1811283419 – RAFAEL CIANCI DA SILVA - FELIPE SEWAYBRICKER LOMBARDI 1809308367 - FRANCISCO MARIANO DE C. NETO ATPS PARADIGMA DA LINGUAGEM Sorocaba 2012 – 8º Semestre
  • 2. História e evolução da linguagem Fortran: Pode-se classificar o Fortran como o "avô" de todas as linguagens computacionais cientificas. O nome FORTRAN deriva de FORmula TRANslation, que indica que esta linguagem estava destinada, desde o inicio, para a tradução de equações cientificas numa linguagem computacional. Antes da existência desta linguagem, os programas eram essencialmente escritos em linguagem de máquina, o que era um processo lento e enfastiante. Fortran foi um produto verdadeiramente revolucionário. Inicialmente, o programador podia prever o algoritmo desejado como uma série de equações algébricas standard, e o compilador Fortran convertia em linguagem de máquina que o computador reconhecia e executava. A linguagem Fortran original comparada com outras versões mais modernas era bastante rudimentar. Continha apenas um número limitado de tipos de declaração e suportava apenas as variáveis do tipo Real Data e Integer, também não existiam subrotinas. Foi uma primeira tentativa para escrever linguagem computacional de alto nível, no entanto foram encontradas muitas deficiências pelos utilizadores regulares. Assim, a IBM desenvolveu o FORTRAN II em 1958. Desenvolvimentos posteriores continuaram durante 1962, quando o FORTRAN IV foi disponibilizado. Este foi um grande passo e tornou-se a versão standard nos 15 anos seguintes. Em 1966 FORTRAN IV foi adoptado como um ANSI ficando conhecido como FORTRAN 66. A linguagem fortran sofreu outra grande alteração em 1977. FORTRAN 77 facilitava a escrita devido à melhor estrutura que esta linguagem apresentava, tornando-se rápidamente O FORTRAN. Introduziu várias estruturas , tais como: o bloco IF; e foi a primeira versão onde as variáveis CHARACTER eram mais fáceis de manipular. Mais tarde, surgiu uma nova versão, o FORTRAN 90. Esta linguagem não é tão rígida como o FORTRAN 77. Em 1997 apareceu o FORTRAN 95. Este acrescenta novas características à linguagem fortran, como por exemplo: construções FORALL, funções puras e alguns novos procedimentos intrísecos. Em conjunto clarifica inúmeras ambiguidades no FORTRAN 90 standard. Observações: Um programa completo em fortran é composto pelo programa principal e por um qualquer número de sub-programas. Existem dois tipos de sub-programas: Subroutine - é caracterizada por uma lista de argumentos e é chamada no programa principal através da instrução CALL. Functions - esta apresenta como resultado um único valor e é chamada no programa principal através do nome que lhe foi atribuído. Os sub-programas deverão ser agrupados no final do programa principal. As variáveis ou constantes podem ser: Integer- número inteiro (positivo, negativo ou nulo), que pode ser representado por um conjunto de dígitos que não contém aspas, nem ponto decimal. Real - as variáveis deste tipo podem ser representadas com números com ponto decimal ou com notação exponencial. As aspas não são válidas. Character - as variáveis deste tipo são incluídas entre apóstrofes ou aspas. O número de caracteres constitui o comprimento da variável. Logical - variáveis do tipo: .TRUE. ou .FALSE.. Há ainda a considerar outros tipos, tais como: Complex, Double Precision. Geralmente utiliza-se a instrução IMPLICIT NONE, a qual obriga a que o utilizador tenha que declarar todas as variáveis. Os identificadores são nomes usados para identificar programas, constantes, variáveis, etc. Estes devem começar por uma letra, seguido de outras letras, dígitos ou underscores.
  • 3. Instruções de transferência de controlo e outras: Program - esta instrução só aparece como a primeira instrução do programa principal. Stop - suspende a execução do programa. Pause - suspende temporariamente a execução do programa. Continue - esta instrução não tem qualquer efeito no que respeita ao resultado da execução do programa. Return - esta instrução permite sair do subprograma, voltando ao local onde é efectuada a chamada do mesmo subprograma. Rewind - permite voltar ao inicio de um ficheiro de dados, mesmo depois de já terem sido lidos alguns dados do mesmo. End - termina uma unidade do programa (programa principal ou um subprograma). If If aritmético If lógico If then If then else Else if .... End if Ciclo Do .... End Do ou Continue Estrutura de um programa exemplo em FORTRAN: Program exemplo Implicit none Declaração das variáveis Leitura e escrita de dados Algoritmo do problema Escrita dos resultados End program EQUAÇÕES NÃO LINEARES: A resolução de equações não lineares, pode ser utilizada, por exemplo, para determinar as raízes de uma dada equação f(x)=0 , isto é, os zeros da função ou ainda obter o vector solução de um determinado sistema. Ao contrário do que sucede com as equações algébricas lineares e quadráticas não se conhecem fórmulas explicitas para as soluções destas equações. Assim recorre-se a métodos aproximados para as resolver. Para problemas cuja determinação da solução é difícil e não exata utilizam-se métodos iterativos para o efeito. Nos métodos iterativos parte-se de uma aproximação inicial da solução e utiliza-se um processo que permite calcular uma aproximação melhorada. Este processo é repetido até que o valor calculado se aproxime da solução exata do problema em questão, satisfazendo o critério de precisão estabelecido. Os métodos, para resolução de equações não lineares, podem ser classificados como: Métodos com delimitação prévia da solução: Método da bissecção; Método da falsa posição Método da falsa posição modificada;
  • 4. Método de Muller. Métodos abertos: Método da secante; Método de Newton; Método de Richmond; Método das substituições sucessivas; Método de Steffensen. Os métodos com delimitação prévia da solução convergem sempre. Neste caso (à excepção do método de Muller) a solução é delimitada no intervalo genérico [a;b], tal que: f(a).f(b)<0 Ao contrário dos primeiros, os métodos abertos não necessitam de uma delimitação prévia, mas apenas uma aproximação inicial à solução. Estes métodos podem não convergir, sendo que alguns têm uma condição que assegura a sua convergência.Este trabalho incidirá sobre o método da bissecção: Método da bissecção: Permite a construção de subintervalos por divisões sucessivas a metade e relativamente aos quais se verifica a condição de o produto dos seus valores na função seja menor que zero. Desta forma confirma-se um zero da função f a intervalos tão pequenos quanto desejados. É um método de fácil implantação (não necessita do conhecimento de derivadas) mas que por vezes apresenta uma convergência muito lenta. A ordem de convergência é linear (p=1) e a razão de convergência c=0.5. Histórico FORTRAN é a mais antiga das linguagens de programação de alto nível podendo ser considerada a mãe de quase todas linguagens de programação moderna. Foi criada em 1956 por Jonh Backus como a 1ª tentativa de padronizar a programação de computadores que era feita até aquele momento apenas em assembly. FORTRAN foi desenvolvida inicialmente para resolução de problemas científicos e matemáticos, sendo muito utilizada ainda nos meios técnicos-científicos. O primeiro compilador FORTRAN representou um marco na história da Computação, no tempo em que computadores tinham bem pouca memória (da ordem de 15 kb mais ou menos), eram bastante lentos e tinham Sistemas Operacionais primitivos (quando tinham um). Naquele tempo, a única forma conhecida de se programar um computador era através da linguagem Assembly. Os pioneiros do FORTRAN não tinham idéia do potencial da linguagem que estavam criando, e nem sequer sonhavam em escrever programas em linguagem de alto nível, mas sem querer, eles criaram a primeira Linguagem de Alto Nível bem sucedida. O primeiro compilador FORTRAN foi projetado e escrito em 1954-1957 pela IBM por um grupo liderado por John W. Backus e contou com a participação de excelentes programadores como Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Richard Goldberg, Lois Haibt and David Sayre. Backus também foi responsável pelo projeto do primeiro computador a usar o FORTRAN, o IBM 704. A invenção ficou famosa rapidamente, o que não era de se admirar, visto que programas que levavam semanas para serem escritos poderiam agora ser feitos em questão de horas, além de exigir muito menos trabalho. Outra grande vantagem da invenção era a portabilidade dos programas escritos em FORTRAN. A
  • 5. linguagem foi adotada pelas comunidades militares e usada extensivamente em programas espaciais e projetos militares. Como os computadores naquele tempo eram usados quase que exclusivamente para cálculos e por pessoas do meio acadêmico e científico, a linguagem foi desenvolvida sem praticamente nenhuma preocupação com estruturação lógica ou clareza em sua codificação que facilitasse a escrita de programas grandes, mesmo porque não havia programas realmente grandes naquela época. FORTRAN passou por algumas grandes revisões: FORTRAN IV (FORTRAN 66) Esta versão foi feita em meados da década de 60 e foi a primeira padronização da linguagem, que gerou um grande número de versões diferentes a partir dela. Programas escritos em FORTRAN 66 são raros hoje em dia. FORTRAN 77 Uma grande reformulação foi feita em meados da década de 70 e várias novas características foram adicionadas à versão anterior. A versão FORTRAN 77 foi o grande apogeu dessa linguagem de programação por assim dizer e há mais programas escritos nesta versão do que em qualquer outra de suas revisões, mesmo as mais recentes. FORTRAN 90 No final da década de 80, a versão 90 do FORTRAN foi elaborada, embora outras linguagens de programação mais modernas tivessem tomado conta do mercado, quase que substituindo completamente sua utilização. Muitas características novas foram acrescentadas a esta versão, como por exemplo recursão, ponteiros e o tipo de dado TYPE, o qual permite uma maior abstração dos dados. Além disso, algumas das restrições anteriores foram retiradas. FORTRAN 95, F A versão mais recente do FORTRAN trás como novidade nessa linguagem a possibilidade de se trabalhar orientado a objetos e várias outras características novas. Alguns críticos argumentam que essa é uma tentativa de criar uma linguagem moderna de programação totalmente baseada em FORTRAN. História Algol Em 1957 as linguagens de programação estavam surgindo aos montes. Indústrias Ynham seus padrões, Universidades Ynham seus padrões, Havia muitos padrões, e nenhuma padronização, Algol surgiu para acabar com isto, Universal, independente de máquina, Um comitê internacional foi criado em 1958, para estabelecer o projeto, Muitos Algols, No final das contas, três projetos: Algol 58, Algol 60 e Algol 68. Os comitês foram ficando cada vez maiores e mais estrelados. A longa herança Quase toda linguagem que surgiu depois de 1958 usa idéias de Algol: Blocos delimitadores, Estrutura léxica de formato livre, Sintaxe definida via BNF, Escopo de bloco para variáveis locais, Tipagem estáYca com anotações de Ypo, If‐then‐else’s aninhados, Chamada por valor, Recursão e expressões condicionais, Alocação dinâmica de memória, Procedimentos de primeira classe, Operadores definidos pelo usuário.
  • 6. Polêmicas As primeiras linguagens usavam rótulos e goto’s para criar desvios de fluxo. Algol e similares vieram com uma nova proposta, baseada em estruturas de controle. Houve muita polêmica. Em 1968, Edsgar Dijkstra escreveu um arYgo muito famoso: “Go to statement considered harmful”. A Programação Estruturada A programação baseada em estruturas de controle, em vez de rótulos, é chamada programação estruturada. Muitos programadores achavam difícil programar sem go‐tos. Hoje a polêmica parece ter chegado ao final, Algumas linguagens, como Java, nem possuem goto’s, E mesmo em linguagens onde go‐to’s existem, os programadores raramente os usam. Esta polêmica toda surgiu com Algol. Ortogonalidade O projeto de Algol tentava ao máximo evitar casos especiais: Sintaxe independende da forma dos programas. Eliminação de limites arbitrários: nomes podem ter qualquer amanha, arranjos podem ter qualquer número de dimensões, etc. – Ortogonalidade: conceitos podem ser combinados de qualquer forma. Ex.: declaração de parâmetros = declaração de variáveis, arranjos de qualquer Ypo primiYvo, registros com quaisquer campos, etc. Exemplo de Ortogonalidade Integers Arrays Procedures Passar como parâmetro x x x Armazenar em variável x x x Armazenar em arranjo x x x Retornar de uma função x x x Cada combinação proibida é um caso especial, que precisa ser lembrado pelo programador. Em Algol 68 todas as combinações acima são possíveis. Poucas linguagens modernas levam ortogonalidade tão a sério quanto Algol. Más noticias Algol nunca foi tão usada quanto se esperaria, – Algol 58 deu origem a Jovial, Algol 60 foi usada como padrão de publicação de algoritmos. Razões do insucesso: O projeto negligenciou entrada/saída, A linguagem era considerada complicada, Alguns erros: passagem por nome, Não havia suporte coorporaYvo ou governamental. John Backus desenvolveu a Forma Normal de Backus, conhecido como BNF, para descrever ALGOL 58. O método foi revisado e expandido por Peter Naur, recebendo então o nome de Forma de Backus-Naur, e mantendo a sigla. C.A.R. Hoare disse de ALGOL 60: "Aqui está uma linguagem tão a frente de seu tempo, que não foi uma melhoria sobre seus predecessoras, mas também a quase todas suas sucessoras". Essa fala foi também uma crítica velada a ALGOL 68, uma linguagem considerada inchada demais por muitos de seus críticos (e que não teve praticamente nenhum sucesso comercial).
  • 7. Impacto A definição do ALGOL 60 foi um evento-chave na história das linguagens de programação. Foi a primeira linguagem de Programação estruturada. Nenhuma outra linguagem teve influência tão importante nos projetos de novas linguagens. Além disso, a especificação da linguagem também criou desafios técnicos para a construção de compiladores, como mais tarde aconteceria com PL/I e Ada Características As duas características principais do Algol são: a clareza e a elegância da sua estrutura baseada nos blocos e o estilo de sua definição, que usa uma linguagem metalingüística para definir de forma concisa e relativamente completa a sua sintaxe. A linguagem continuou sendo desenvolvida e enriquecida com novas construções e novos comandos que aumentaram seu potencial. Existem outras versões do Algol, como, por exemplo, o Algol 68, o Algol W voltado para máquinas IBM e o Algol 6000/7000 da Burroughs. ALGOL e Burroughs 12(definição de arquivos e seus atributos, comandos para manipulação de arquivos e variedade de formatos)[1], facilidades para o tratamento de cadeias de caracteres (tipo string, tipo POINTER (ou Ponteiro), comandos e funções para manipulação de cadeias), acesso a bits de memória (palavra parcial) e facilidade para definir macros (declaração DEFINE). Esta linguagem se tornou apropriada para escrever software básico; em particular o sistema operacional do B6700 (MCP – "Master Control Program" está escrito em ESPOL, uma extensão do Algol, permitindo manipulações mais perto do hardware. Há uma outra extensão, o DCALGOL, Data Communications ALGOL, usado para escrever software de comunicação de dados. Variantes Padrões ALGOL 58, primeira proposta da linguagem ALGOL 60, versão mais conhecida da linguagem ALGOL 68, versão bem mais poderosa, porém menos conhecida Referências bibliográficas : CHAPMAN,S. J. ,"Introduction to fortran 90/95", McGraw-Hill, 1997; GERALD,C. F. ; WHEATLEY,P. O. , "Applied numerical Analysis", 5th ed., Addison- Wesley Publishing Company, Nova Iorque (