ALGORITMO E PROGRAMAÇÃO



Documentos relacionados
Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

NOTA II TABELAS E GRÁFICOS

PLANILHAS EXCEL/VBA PARA PROBLEMAS ENVOLVENDO EQUILÍBRIO LÍQUIDO-VAPOR EM SISTEMAS BINÁRIOS

7. Resolução Numérica de Equações Diferenciais Ordinárias

Sistemas Robóticos. Sumário. Introdução. Introdução. Navegação. Introdução Onde estou? Para onde vou? Como vou lá chegar?

CENTRO UNIVERSITÁRIO DO LESTE DE MINAS GERAIS - UnilesteMG

TEORIA DE ERROS * ERRO é a diferença entre um valor obtido ao se medir uma grandeza e o valor real ou correto da mesma.

Programação de Computadores III

CAPÍTULO VI Introdução ao Método de Elementos Finitos (MEF)

UNIVERSIDADE DO ESTADO DA BAHIA - UNEB DEPARTAMENTO DE CIÊNCIAS EXATAS E DA TERRA COLEGIADO DO CURSO DE DESENHO INDUSTRIAL CAMPUS I - SALVADOR

Rastreando Algoritmos

Resolução de problemas e desenvolvimento de algoritmos

Introdução às Linguagens de Programação

CURSO ON-LINE PROFESSOR: VÍTOR MENEZES

Elaboração: Fevereiro/2008

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Introdução a Informática. Prof.: Roberto Franciscatto

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Linguagens de Programação e Compiladores

Nota Técnica Médias do ENEM 2009 por Escola

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

O Uso do Software Matlab Aplicado à Previsão de Índices da Bolsa de Valores: Um Estudo de Caso no Curso de Engenharia de Produção

LOCALIZAÇÃO ESPACIAL DA MÃO DO USUÁRIO UTILIZANDO WII REMOTE. Ricardo Silva Tavares 1 ; Roberto Scalco 2

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Fast Multiresolution Image Querying

Ministério da Educação. Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira. Cálculo do Conceito Preliminar de Cursos de Graduação

1.1. Organização de um Sistema Computacional

UFRPE Prof. Gustavo Callou

Curso Técnico em Redes

IV - Descrição e Apresentação dos Dados. Prof. Herondino

IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO

IMPLEMENTAÇÃO DE REDES NEURAIS ARTIFICIAIS UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO JAVA

1 Princípios da entropia e da energia

7 - Distribuição de Freqüências

Introdução e Organização de Dados Estatísticos

Universidade Salvador UNIFACS Cursos de Engenharia Cálculo IV Profa: Ilka Rebouças Freire. Integrais Múltiplas

TE210 FUNDAMENTOS PARA ANÁLISE DE CIRCUITOS ELÉTRICOS

Física. Setor A. Índice-controle de Estudo. Prof.: Aula 25 (pág. 86) AD TM TC. Aula 26 (pág. 86) AD TM TC. Aula 27 (pág.

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

ALP Algoritmos e Programação. . Linguagens para Computadores

DESENVOLVIMENTO DE UM PRÉ-PROCESSADOR PARA ANÁLISE ISOGEOMÉTRICA

Sistemas de Filas: Aula 5. Amedeo R. Odoni 22 de outubro de 2001

FERRAMENTA DE AUXÍLIO AO DIAGNÓSTICO MÉDICO DURANTE A GRAVIDEZ

Hansard OnLine. Guia Unit Fund Centre

Programação de Computadores

GST0045 MATEMÁTICA FINANCEIRA

Organização da Aula. Gestão de Obras Públicas. Aula 2. Projeto de Gestão de Obras Públicas Municipais. Contextualização

Covariância e Correlação Linear

Software. Guia do professor. Como comprar sua moto. Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia. Ministério da Educação

Organização de Computadores Software

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

CAPÍTULO 1 Exercícios Propostos

RESOLUÇÃO NUMÉRICA DE EQUAÇÕES DIFERENCIAIS

PROJEÇÕES POPULACIONAIS PARA OS MUNICÍPIOS E DISTRITOS DO CEARÁ

Análise de Regressão. Profa Alcione Miranda dos Santos Departamento de Saúde Pública UFMA

Algoritmos. Cláudio Barbosa

Parte II Introdução a Linguagens de Programação

Camila Spinassé INTRODUÇÃO À MATEMÁTICA FINANCEIRA PARA ALUNOS NA EDUCAÇÃO DE JOVENS E ADULTOS

Física. Setor B. Índice-controle de Estudo. Prof.: Aula 23 (pág. 86) AD TM TC. Aula 24 (pág. 87) AD TM TC. Aula 25 (pág.

Controle Estatístico de Qualidade. Capítulo 8 (montgomery)

Variabilidade Espacial do Teor de Água de um Argissolo sob Plantio Convencional de Feijão Irrigado

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

ICC Introdução para JavaScript

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Processamento da Informação Teoria. Algoritmos e Tipos de dados

INTRODUÇÃO À LINGUAGEM C/C++

Estatística stica Descritiva

O Método de Redes Neurais com Função de Ativação de Base Radial para Classificação em Data Mining

Termodinâmica e Termoquímica

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Introdução. Sumários. Objectivos da cadeira. História das linguagens de programação. Classificação das Linguagens de programação

10/02/2015. As linguagens. Algoritmos e Lógica de programação. Os produtos. Os ingredientes. Introdução. Atuais:.Net Java Delphi PHP

Informática II Cap. 3

Introdução à Arquitetura de Computadores IFES Campus Serra

PPSS. Análise de Comportamentos para Função Este relatório é fornecido por:

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

CÁLCULO DO ALUNO EQUIVALENTE PARA FINS DE ANÁLISE DE CUSTOS DE MANUTENÇÃO DAS IFES

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

Dadas a base e a altura de um triangulo, determinar sua área.

Revista da Graduação

UTILIZAÇÃO DO MÉTODO DE TAGUCHI NA REDUÇÃO DOS CUSTOS DE PROJETOS. Uma equação simplificada para se determinar o lucro de uma empresa é:

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

CONTROLE FUZZY PI DE TEMPERATURA NUM MODELO DE EDIFICAÇÃO EM ESCALA REDUZIDA

Aula 7: Circuitos. Curso de Física Geral III F-328 1º semestre, 2014

Conceitos básicos de programação

Redes Neuronais (Introdução, perceptrões, e MLP)

RAD1507 Estatística Aplicada à Administração I Prof. Dr. Evandro Marcos Saidel Ribeiro

Ambiente de Desenvolvimento de Manufatura Virtual

Transcrição:

ALGORITMO E PROGRAMAÇÃO 1 ALGORITMO É a descrção de um conjunto de ações que, obedecdas, resultam numa sucessão fnta de passos, atngndo um objetvo. 1.1 AÇÃO É um acontecmento que a partr de um estado ncal, após um período de tempo fnto, produz um estado fnal prevsível e bem defndo. 1.2 AUTOMAÇÃO É o processo em que uma tarefa dexa de ser desempenhada pelo homem e passa a ser realzada por máqunas, sejam estas dspostvos mecâncos, eletrôncos (como computadores) ou de natureza msta. 1.3 REPETIBILIDADE É necessáro que seja especfcado com clareza e exatdão o que deve ser realzado em cada uma das fases do processo a ser automatzado, bem como a sequênca em que estas fases devem ser realzadas. 1.4 OUTRAS DEFINIÇÕES ALGORITMO é a especfcação de uma sequênca ordenada de passos que deve ser seguda para realzação de uma tarefa garantndo a sua repetbldade. ALGORITMO é uma sequênca de passos que vsam atngr um objetvo bem defndo. 2 PROGRAMAÇÃO O conceto central da programação é o de algortmo. Programar é bascamente construr algortmos. Segundo Wrth: Programas são formulações concretas de algortmos abstratos, baseados em representações e estruturas específcas de dados. Um programa pode ser vsto como uma codfcação de um algortmo em uma determnada Lnguagem de Programação, para execução pelo computador. Professor: Ivo Máro Mathas 6

3 LINGUAGEM DE PROGRAMAÇÃO (SOFTWARE) 3.1 LINGUAGEM DE MÁQUINA PRIMEIRA GERAÇÃO 1GL Os computadores só podem executar os programas dretamente em Lnguagem de Máquna, que é um conjunto de nstruções capazes de atvar dretamente os dspostvos eletrôncos do computador. Os computadores possuem dferentes comandos mplementados em seu processador e esses são acessados em forma numérca (bnára ou hexadecmal), o que torna pouco expressvo para letores humanos um programa em Lnguagem de Máquna, pos há necessdade de saber o sgnfcado específco de cada número. 3.2 LINGUAGEM ASSEMBLER/MONTADORA SEGUNDA GERAÇÃO 2GL Dante das dfculdades apresentadas pela Lnguagem de Máquna, surgu a dea da lnguagem smbólca, onde palavras (mnemôncos) como LOAD, STORE, MOVE, COMPARE, ADD, SUBTRACT, MULTIPLY e DIVIDE, são usadas como equvalentes dretos das nstruções bnáras. É a lnguagem de nível medatamente acma da lnguagem de máquna, baxo nível, em que um programa chamado montador, escrto em Lnguagem de Máquna, organza as palavras e as traduz para forma bnára, que é armazenada em bancos de dados chamados bblotecas (lbrares). 3.3 LINGUAGENS DE ALTO NÍVEL TERCEIRA GERAÇÃO 3GL A partr da Lnguagem Assembler, onde um comando dessa corresponde a um comando em Lnguagem de Máquna, se estabeleceu a relação de um comando smbólco para város comandos em Lnguagem de Máquna. São lnguagens de programação projetadas para serem faclmente entenddas pelo ser humano, consderadas proceduras e estruturadas, em que a maora dessas lnguagens suporta o conceto de programação estruturada. 3.3.1 Hstórco 1957 - FORTRAN (Formula Translaton) - Fórmulas matemátcas, natureza técnca e centífca. 1959 - COBOL (Common Busness Orented Language) Comercal, uso geral. Professor: Ivo Máro Mathas 7

1964 - BASIC (Begneers All-Purpose Symbolc Instructon Code) - Incalmente, ser uma lnguagem mas smples que o Fortran, porém evoluu sem um padrão defndo e passou a ser a lnguagem mas utlzada em mcrocomputadores, de uso geral. 1968 - PASCAL (homenagem ao matemátco francês) - Voltada, para o ensno, mas também de uso geral. 1977 - C (A,B e C ultmo resultado) - Uso geral, nível médo. Observação - lnguagem C: crada na década de 70, por Denns Rtche, nos laboratóros Bell. Para tanto, ele utlzou o sstema operaconal Unx e a lnguagem BCPL. Baseado nessa lnguagem, outro pesqusador, chamado Ken Thompson (que também trabalhou na cração de C) hava crado a lnguagem B, que por sua vez fo nfluencada pela lnguagem BCPL crada por Martn Rchards. Como a lnguagem de Rche fo posteror à lnguagem B, recebeu o nome de C. A lnguagem C é estruturada, e consderada de nível médo, possu portabldade do códgo fonte e um programa objeto muto efcente, rápdo e compacto. Alguns sstemas computaconas escrtos em C: Unx e Lnux, parte do Wndows e seus aplcatvos, Delph, Turbo Pascal, Cbulder, etc. Comparatvo entre códgos: Professor: Ivo Máro Mathas 8

3.4 LINGUAGENS DE QUARTA GERAÇÃO 4GL Uma das prncpas característcas dessas lnguagens e a de gerar códgo automatcamente para a produção de programas de computadores aplcando a técnca RAD (Rapd Applcaton Development). Essa técnca possblta obter uma maor otmzação dos códgos dos programas e maor rapdez de desenvolvmento por meo de uma IDE (Integrated Development Envronment), geralmente em ambente vsual utlzando-se dos recursos gráfcos do sstema operaconal, como o Wndows. Exemplos: C Bulder, Delph, Vsual Basc, etc. Nessa geração de lnguagens também se encontram as lnguagens orentadas à objetos o que torna possível a reutlzação de partes do códgo para outros programas. Uma lnguagem consderada 4GL é a lnguagem SQL (Structured Query Language), sendo um padrão para manpulação e consulta de bancos de dados relaconal, também usada em conjunto com as lnguagens de 3GL. 3.4.1 Hstórco Java é uma lnguagem de programação orentada a objeto desenvolvda na década de 90 por uma equpe de programadores chefada por James Goslng, na empresa Sun Mcrosystems. Dferentemente das lnguagens convenconas, que são compladas para códgo natvo, a lnguagem Java é complada para um bytecode que é executado por uma máquna vrtual. PHP (Personal Home Page) é uma lnguagem de programação de computadores nterpretada, lvre e muto utlzada para gerar conteúdo dnâmco na Web, desenvolvda em meados de 1994. 3.5 LINGUAGENS DE QUINTA GERAÇÃO 5GL Nessa geração são consderadas as lnguagens orentadas à Intelgênca Artfcal (IA). Exemplo: LISP, Prolog. Professor: Ivo Máro Mathas 9

3.5.1 Hstórco LISP (LISt Processng) a lsta é a estrutura de dados fundamental dessa lnguagem. Tanto os dados como o programa são representados como lstas, o que permte que a lnguagem manpule o códgo fonte como qualquer outro tpo de dados. A lnguagem LISP é nterpretada, em que o usuáro dgta expressões em uma lnguagem formal defnda e recebe como retorno a avalação de sua expressão. PROLOG (PROgrammng n LOGc) é uma lnguagem de programação lógca e declaratva. O propósto dessa lnguagem é crar programas para tradução de lnguagem natural (como nglês ou português). 3.6 COMPILADORES São programas especalmente projetados para traduzr programas escrtos em lnguagem de alto nível (programa fonte) para lnguagem de máquna, gerando um novo programa chamado programa objeto, após esta operação o códgo objeto deve passar por mas uma etapa que é a lnkedção, que consste em gerar um programa executável (módulo de carga). O programa lnkedtor tem também a fnaldade de juntar dversos programas objeto em um únco programa (módulo de carga). O complador é específco a cada lnguagem, ou seja, só pode complar programas escrtos na lnguagem para a qual fo preparado, e ao efetuar a complação detecta e emte mensagens sobre os erros no uso da lnguagem (erros de sntaxe, uso ncorreto de comandos, etc.), não gerando o programa complado, ou seja, o programa objeto. 3.7 INTERPRETADORES São programas especalmente projetados para traduzr (nterpretar) programas escrtos em lnguagem de alto nível para lnguagem de máquna, durante a execução, ou seja não é gerado um novo programa, o própro texto do programa é utlzado. Os Interpretadores são específcos a cada lnguagem e durante a execução de um programa verfca a exstênca de algum erro no uso da lnguagem, caso haja, nterrompe a execução emtndo uma mensagem apontando o erro. A execução de um programa nterpretado é mas lenta em relação a um complado. Professor: Ivo Máro Mathas 10

3.8 SOFTWARE O Software está dvddo em Software de Sstema e Software de Aplcação, e o Software de Sstema subdvde-se em Software do Sstema Operaconal e Software de Lnguagens. 4 FORMAS DE REPRESENTAÇÃO DE ALGORITMOS 4.1 DESCRIÇÃO NARRATIVA Representação dos algortmos dretamente em lnguagem natural. Pouco usada na prátca porque o uso da lnguagem natural mutas vezes causa má nterpretação, ambgudades e mprecsões. Exemplo: uma nstrução como, "Afrouxar lgeramente um parafuso", necesstara de uma nstrução mas precsa como, "Afrouxar o parafuso, grando 30 º no sentdo ant-horáro". 4.2 FLUXOGRAMA CONVENCIONAL É uma representação gráfca de algortmos onde formas geométrcas dferentes mplcam ações (nstruções, comandos) dstntos. Tal propredade faclta o entendmento das deas contdas nos algortmos. Forma ntermedára entre a descrção narratva e o pseudocódgo (subtem segunte), mas é menos mprecsa que a prmera e no entanto, não se preocupa com detalhes de mplementação do programa como tpo das varáves usadas (tem futuro). Preocupa-se com detalhes de nível físco da mplementação do algortmo como: dstngur dspostvos onde ocorrem as operações de entrada e saída de dados. Professor: Ivo Máro Mathas 11

Prncpas formas geométrcas usadas em fluxogramas: = Iníco e Fnal do Fluxograma = Operação de Entrada de dados = Operação de saída de dados = Operações de atrbução e chamada ou retorno de subalgortmo. = Desvo condconal (decsão) Professor: Ivo Máro Mathas 12

Exemplo: Cálculo da méda de duas notas de um aluno sob a forma de um fluxograma. Iníco N1,N2 Méda := (N1+N2)/2 Méda>=7.V. "Aprovado".F. "Reprovado" Fm. 4.3 PSEUDOCÓDIGO - LINGUAGEM ESTRUTURADA - PORTUGOL É uma forma de representação de algortmos rca em detalhes, como a defnção dos tpos de varáves usadas em lnguagens de programação e assemelha-se bastante a forma com que os programas são escrtos. Professor: Ivo Máro Mathas 13

Forma geral de representação de um algortmo em pseudocódgo: Algortmo <nome_do_algortmo> Var <declaração_de_varáves_globas> <declaração_dos_subalgortmos> Iníco Var <declaração_de_varáves_locas> <corpo_do_algortmo> Fm. Onde: Algortmo é uma palavra que ndca o níco da defnção de um algortmo em forma de pseudocódgo; <nome_do_algortmo> é um nome smbólco dado ao algortmo com a fnaldade de dstngu-lo dos demas; <declaração_de_varáves> consste em uma porção opconal onde são declaradas as varáves locas/globas usadas no algortmo prncpal e eventualmente nos subalgortmos; <subalgortmos> consste de uma porção opconal do pseudocódgo onde são defndos os subalgortmos. Iníco e Fm são as palavras que respectvamente delmtam o níco e térmno do conjunto de nstruções do corpo do algortmo. Professor: Ivo Máro Mathas 14

Exemplo: Cálculo da méda de duas notas de um aluno em pseudocódgo. Algortmo Méda; Iníco Var real: N1, N2, Méda; Lea N1, N2; Méda = (N1 + N2) / 2; Se Méda >= 7 Então Escreva "Aprovado"; Senão Escreva "Reprovado"; Fm_se; Fm. Professor: Ivo Máro Mathas 15