A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

AlgoritmosSistemas de Informação para a Gestão1ºano 2001/2002Diurno e Nocturno1ª semestre [AAZ95] Azul, Artur Augusto, Técnicas e Linguagens de Programação,

Apresentações semelhantes


Apresentação em tema: "AlgoritmosSistemas de Informação para a Gestão1ºano 2001/2002Diurno e Nocturno1ª semestre [AAZ95] Azul, Artur Augusto, Técnicas e Linguagens de Programação,"— Transcrição da apresentação:

1 AlgoritmosSistemas de Informação para a Gestão1ºano 2001/2002Diurno e Nocturno1ª semestre [AAZ95] Azul, Artur Augusto, Técnicas e Linguagens de Programação, Porto Editora 1995 (pgs ) António Tavares, 2001/2002Acetato 1 Computadores e Linguagens de Programação Estrutura e funcionamento de um computador Algoritmos e Lógica da Programação

2 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 2 1. Suporte físico à Programação Compreender O que é um programa e uma linguagem de programação Como um programa se articula com um computador Ter algumas noções básicas acerca da estrutura e do funcionamento de um computador, as quais, apesar da evolução tecnologica, mantêm-se inalteradas à mais de 30 anos

3 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Estrutura e funcionamento de um computador Computador – máquina ou cnjunto de dispositivos electrónicos capazes de processar informação Memória Secundária Unidade Central de Processamento (CPU) Memória Primária Dispositivos de Input Dispositivos de Output Esquema básico de um computador

4 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 4 Componentes fundamentais CPU (Central Processing Unit) – é a componente que realiza a parte fundamental do trabalho do computador, e que consiste em processar electronicamente dados ou informação Unidade de aquisição e de interface com a memória primária Registos (Registers) Unidade de Controlo Unidade Lógico Aritmética (ALU) Memória Primária Esquema básico de um microprocessador Na memória primária ou central é armazenada informação codificada, que vai ser chamada ao processador, para este realizar as operações ou instruções contidas nessa informação A unidade de controlo envia aos outros componentes sinais de activação e sincronização das operações Os registos são pequenos circuitos de armazenamento temporário de instruções e dados

5 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 5 Estrutura Simplificada de uma Memória (RAM) Componentes fundamentais O processador apenas entende os sinais eléctricos que percorrem os circuitos que o constituem Os computadores funcionam com o sistema de informação bimário (zeros e ums) BIT – inidade minima de informação com que lida um SI (pode ser 0 ou 1) Byte – agrupamento de 8 bits Todos os dados e instruções que circulam entre o processador e a memória estão sobre a forma de bits e têm significado quando resultam do agrupamento de bits (bytes) Um programa é armazenado em memória sobre a forma de uma sequência de instruções (bytes) podendo ser directamente executado pelo processador – PROGRAMA OBJECTO células endereços N N

6 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 6 Execução de um programa Informação que entra para um sistema informático Instruções de programas Dados manipulados por esses programas Instruções e dados são armazenados temporáriamente na RAM e codificadas e executadas no processador Cada instrução é executada através de um ciclo de instrução Ciclo de Instrução – processo que consiste em fazer com que cada instrução passe da memória para o processador, para aí poder ser executada 1. Em cada instante, o processador contém num registo próprio (Instruction Pointer-IP ou Program Counter-PC) o endereço ou posição de memória onde se encontra a próxima instrução a ser executada 2. A unidade de controlo envia um sinal à memória pedindo o conteúdo da instrução que está no endereço dado por IP 3. A instrução pedida é devolvida para um outro registo do processador (Instruction Register – IR) para então ser descodificada e executada pelo

7 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Níveis de um Sistema Informático O Computador é um sistema que integra e articula dois tipos fundamentais de componentes: Físicos - Hardware (compon. mecânicos, electrónicos e electromecânicos) Lógicos - Software (programas = conjunto de instruções codificadas) O SW permite que a máquina física (o HW) deixe de ser apenas um emaranhado de circuitos e passe a ser um um utensílio que pode realizar tarefas complexas manuseável por pessoas O SW permite criar uma abstracção do HW (uma Máquina Virtual) O SW é ele próprio organizado em camadas, em que, camadas de nível superior são abtracções de camadas de nível inferior

8 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 8 Tipos e camadas de Software Sistema Operativo – actua como interface entre o HW e o utilizador ou os seus programas de aplicação Programas de aplicação - Processador de Texto; Folha de Cálculo; etc. Sobrepõem-se ao sistema operativo Um Sistema Informático pode ser visto como uma sucessão de máquinas virtuais as quais são criadsa usando linguagens de programação Software de Aplicação Software de Sistema Programas de Aplicação UtilizadorProgramador Software de Programação Hardware - Máquina Interface de Comandos (Shell) Núcleo (Kernel)

9 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 9 2. Linguagens de Programação Linguagem de Programação - é um sistemna de escrita formal para enunciar a execução de operações em computador –tem uma terminologia ou um conjunto de termos, palavras e sinais, que assumem determinados significados (sintaxe) –ou conjunto de regras que estipulam o uso correcto dos termos, para construir significados válidos (semântica) Programa - é um conjunto de frases que utilizam os termos e as regras de uma determinada linguagem de programação, com vista a concretizar determinados objectivos Algoritmo – forma ou fórmula para resolução de um determinado problema, mediante o estabelecimento de determinadas regras e procedimentos.

10 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Da Linguagem Natural à Linguagem Máquina Programa-objecto ou executável Linguagem máquina ou código-máquina Programa tradutor Programa-fonte Assemblador Linguagens de Programação Linguagem Natural de Baixo nível (Assembly)

11 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Da Linguagem Natural à Linguagem Máquina Programa-objecto ou executável Linguagem máquina ou código-máquina Programas tradutores Programa-fonte CompiladorInterpretadorAssemblador Linguagens de Programação Linguagem Natural de Alto Nível (Pascal, C, C++, Java,...) de Baixo nível (Assembly)

12 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Da Linguagem Natural à Linguagem Máquina Programa-objecto ou executável Linguagem máquina ou código-máquina Programas tradutores Programa-fonte Compilador Ou tradutor Assemblador Linguagens de Programação Linguagem Natural de Alto Nível (Pascal, C, C++, Java,...) de Baixo nível (Assembly)

13 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Da Linguagem Natural à Linguagem Máquina Programa-objecto Linguagem máquina Programa tradutor Programa-fonte Compilador Assemblador Linguagens de Programação Linguagem Natural de Alto Nível (Pascal, C, C++, Java,...) de Baixo nível (Assembly) Programa-objecto Programa tradutor Linker Linker - liga programas objecto - Reutilização

14 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Ambientes de programação Tipos de Ficheiros: Ficheiro de texto simples (ASCII) – informação em formato de caracteres => programa em código fonte Ficheiro binário – informação em formato binário => programa executável (em formato binário directamente executável) Ambiente de programação – apoia o programador nas tarefas habituais, desde a escrita à complicação dos programas, passando pela detecção e correcção dos erros que os programas possam conter. Ferramentas típicas: –Editores –Compiladores –Depuradores (debbugers) –Verificadores –Geradores de dados para testes –Linkers (ligadores) –.....

15 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A evolução das Linguagens de Programação Alguns aspectos que deram origem a evoluções das linguagens de programação –autonomia do código fonte –satisfação de necessidades sectoriais (ex. matemática) –maior estruturação na abordagem dos problemas –melhor manutenção –maior expressividade (Inteligência Artificial) –geração de código –reutilização de código –maior aproximação entre a linguagem natural e as linguagens de programação – As linguagens foram sendo classificadas em gerações em função das características que ofereciam, considerando-se que linguagens com caracrterísticas semelhantes pertencem à mesma geração

16 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A evolução das Linguagens de Programação Linguagens máquina, assembly Primeiras linguagens Linguagens estruturadas, 4GL Linguagens Orientadas por Objectos Complexidade do SW

17 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A evolução das Linguagens de Programação Ling. 1ª geração –Dependentes da máquina, ao mais baixo nível de abstracção. –Codificação em Assembly Ling. 2ª geração –Oferecem algum nível de abstracção e Introduzem as Bibliotecas de Software Ling. 3ª geração (Linguagens Estruturadas) –Ricas em capacidades procedimentais e estrutuas de dados. Dividem-se em: General Purpose High Order Languages (Pascal, C,...) Object Oriented Languages Ling. 4ª geração –Sintaxe distinta para controlo e representação de estruturas de dados –O seu elevado nível de abtracção elimina a necessidade de especificação algoritmica exaustivamente detalhada –Combinam características procedimentais com não-procedimentais –Query Languages e Geradores de Aplicações. Ling. 5ª geração –Linguagens não-procedimentais que permitem a declaração do problema a resolver possuindo a própria linguagem mecanismos para a sua resolução –Linguagens declarativas (Prolog)

18 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A evolução das Linguagens de Programação Smalltalk Simula C Pascal Módula-2 Ada OO Pascal Objective C C # C ++ Java Actor Eiffel FortranCobol Algol Primeiras Linguagens Linguagens Estruturadas Linguagens percursoras OO Linguagens OO

19 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Paradigmas de Linguagens de Programação Paradigma de programação –define um modelo ou norma a seguir pelas linguagens de programação baseadas no paradigma Programação procedimental, sequencial, imperativa ou estrutural –O programa é uma sequência de comandos ou instruções que o programador fornece ao computador e que este executa sequencialmente Programação declarativa –O programador declara o conhecimento que o computador deve ter necessário à resolução do problema e como este deve proceder para atingir a solução Programação funcional –Os programas baseiam-se em principios matemáticos (funções e conjuntos) Programação OO –Surge como uma evolução da programação estruturada e modular –Os programas são substituidos por objectos que encapsulam dados e instruções.....

20 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A Lógica da Programação Enfoque: Programação Estruturada Os Algoritmos –permitem-nos partir dos problemas e obter os programas –são a forma de lidar com a complexidade natural da actividade de programação –São a fase intermédia entre a compreensão do problema e a escrita do programa numa linguagem de programação Algoritmo – é uma sequência ordenada e precisa de passos, acções ou operações, que conduzem à solução de um dado problema – a sua formulação consiste na descrição de forma ordenada, com clareza e rigor, das operações que se pretendem realizar em computador para resolver um problema ou atingir determinados objectivos

21 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Fases tipicas na elaboração de um programa Análise do Problema Formulação de um Algoritmo Tradução do algoritmo num programa-fonte Tradução do programa-fonte para código-máquina Testes de verificação lógica Programa Terminado Detecção de erros de escrita Detecção de erros de lógica sim não sim não Revisão do Texto Revisão do algoritmo

22 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Entidades fundamentais da lógica de programação Nos algoritmos destinados a programas de computador, tem de se recorrer a diversas estruturas de representação das acções ou operações a realizar Entidades fundamentais: –Dados –Instruções básicas –Estruturas de controlo –Condições ou expressões lógicas –Subprogramas Um programa executa sequencialmente um conjunto de instruções básicas sobre dados São no entanto necessárias situações em que: –Uma instrução tenha de ser repetida várias vezes –Decidir sobre se deve ou não executar determinada instrução em função de uma determinada condição –Seleccionar a acção a realizar de entre um conjunto de alternativas

23 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Exemplo: Problema: –É dado o preço de um terreno de forma rectangular, bem como as medidas de dois dos lados adjacentes –Pretendemos saber se o seu preço por metro quadrado está acima ou abaixo da média dos preços praticados na zona (que nos é dado) Formulação do algoritmo: Táctica : decompor o problema em problemas mais simples 1.Temos de saber: o preço do terreno; a medida do lado A (em metros); a medida do lado B (em metros); o preço médio por metro quadrado 2.Calcular a área do terreno: área = lado A x lado B 3.Calcular o preço por m 2 : preço por m 2 = preço do terreno / área 4.Comparar os preços por m 2 SE preço por m 2 > preço médio ENTÃO o preço está acima da média SE preço por m 2 < preço médio ENTÃO o preço está abaixo ao da média SENÃO o preço está abaixo da média

24 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Formas de representar algoritmos Existem essencialmente duas para a programação estruturada: Fluxogramas – descrição gráfica Pseudocódigo – descrição textual que se aproxima da linguagem natural Os Fluxogramas estão em desuso, pelo que vamos optar nesta disciplina, em exclusivo, pela utilização do Pseudocódigo, e fazer um paralelo constante entre o pseudocódigo e as linguagens de programação que vamos utilizar.

25 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 25 Fluxogramas SimbolosSignificadoExemplo Processamento em geral Leitura/Escrita de dados Inicio/Fim de Processamento Linha de Fluxo Conector de Fluxos Decisão condicional Escolha múltipla Subprograma x x+1 Escreve x Inicio X>5 Rotina x Caso x

26 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 26 Fluxogramas Escrever Valores iguais Inicio Fim Ler valor 1 Ler valor 2 Valor 1 > Valor2 Escrever Valor 1 é maior Valor 1 > Valor2 Escrever Valor 2 é maior Não Sim Não

27 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 27 Pseudocódigo Código de escrita que : –utiliza uma combinação de termos convencionais para indicar as instruções do programa –os termos utilizados são usualmente um misto de palavras da nossa linguagem natural com palavras e notações típicas das linguagens de programação. Características: –Não tem um notação standard –Tem maior proximidade com as linguagens de programação permitindo diminuir o esforço gasto no desenvolvimento/codificação

28 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 28 Pseudocódigo Início Escrever (Introduza dois valores) Ler (valor1) Ler (valor2) SE valor 1 > valor ENTÃO Escrevrer (valor 1, é maior) SENÃO SE valor 1 < valor 2 ENTÃO Escrever (valor 2, é maior) SENÃO Escrever (valores iguais) Fim

29 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Ciclo de obtenção do produto final Ciclo: Formulação, Codificação, Compilação, Depuração Situação/Problema Escrita de um programa - tradução do algoritmo em linguagem de programação Linguagens de programação Tradução do programa-fonte em linguagem-máquina Compiladores Interpretadores Programa Terminado Programa em código-máquina Formulação de um algoritmo como solução do problema Diagramas Fluxogramas Pseudocódigo Verificação e depuração do programa

30 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A abordagem Estruturada Linguagens de Programação Estruturadas => Abordagem Estruturada Abordagem Estruturada - abordagem sistemática da construção de SW que os princípios como: 1.a separação das definições de dados e de programa 2.aconcepção descendente ou Top-Down 3.e refinamento progressivo => A separação das definições de dados e de programa –Os programas surgem com duas partes principais bem diferenciadas: –Parte declarativa: declaram-se os tipos de dados e variáveis a utilizar no corpo das instruções do programa –Parte operativa: o corpo de instruções com que se pretende concretizar as operações e atingir os objectivos pretendidos

31 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato A abordagem Estruturada => A concepção descendente ou Top-Down –É um método de abordagem dos problemas que se decompondo o problema original em problemas particulares, em níveis sucessivamente mais concretos até ao pormenor desejado => Refinamento Progressivo –É um complemento lógico da abordagem descendente –Consiste em ir concretizando, cada vez com mais detalhe, com maior exactidãoe perfeição, os passos sucessivos do projecto em questão –Muito útil no desenvolvimento de pseudocódigo Abordagem Modular – apresenta semelhanças com a abordagem estruturada, consistindo na decomposição de um problema complexo nos seus componentes, aos quais se chamam módulos –Os módulos são unidades com alguma autonomia, mas também relacionáveis entre si, pois podem-se integrar (ligar) num todo –Reutilização de bibliotecas de módulos

32 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Componentes fundamentais de um programa Estruturação e componentes fundamentais de um programa A estruturação de programas subdivide-se na estruturação das suas acções e na estruturação dos seus dados.A escolha destas estruturas é o problema fundamental da programação estruturada. Da escolha criteriosa destas estruturas depende que o programa seja eficaz, compreensível, robusto, modular e versátil. A sintaxe de uma linguagem define determinados construtores, de entre os quais os mais importantes são as expressões e os comandos Uma expressão é uma fórmula ou regra de computação que especifica um valor ou um resultado. Uma espressão consiste em operandos e operadores. Os operandos são constantes, variáveis, ou valores gerados por funções. Os operadores são usualmente classificados em monádicos ou unários (operam sobre um único operador) e diádicos (operam sobre dois operadores). Um comando é uma formula que especifica uma acção que o computador deve executar para produzir certo efeito Coelho, Helder Programa = Dados + Instruções básicas + Expressões + Estruturas de Controlo + Subprogramas

33 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Dados Dados – constantes, variáveis e identificadores Qualquer programa opera com dados Os dados podem ser utilizados sob a forma de constantes ou de variáveis As variáveis são sempre associadas a identificadores e num dado instante apenas podem conter um determinado valor (simples ou composto) Identificadores são nomes que se atribuem a variáveis, constantes ou outros elementos com que se opera num algoritmo As variáveis pretencem sempre a um tipo de dados, o qual define o tipo de valores que a variável pode conter ao longo do tempo Variáveis versus constantes: Uma constante é um dado directo, inserido directamnete numa instrução do algoritmo Ex. Escrever (Bem-Vindo) e Escrever (1999) Quando os dados são ser introduzidos, processados, calculados,..., devemos usar variáveis Ler(quantidade, preço) Total := quantidade*preço Escrever(total)

34 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 34 Variáveis: identificadores e endereços de memória Identificadores de variáveis Nome Morada Telefone Conteúdo das variáveis Ana Coimbra 6000 Endereços de memória Conteúdo das células Ana 6000 Coimbra

35 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 35 Tipos de dados Tipos de Dados SimplesEstruturadosDinâmicos Ordinais Ficheiros Definidos pelo utilizador Predefinidos Enumerados Subconjuntos Inteiros/Reais Caracteres Booleanos Matrizes Registos Conjuntos Ficheiros Ponteiros

36 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 36 Tipos de dados Simples Ficheiro: Os seus valores são de um determinado tipo e estão armazenados num ficheiro (memória secundária). - Tipo pré-definido é o ficheiro de texto (String) - Existem tipos de ficheiros estruturados Inteiro: de –32xxx a Real: de xx x até xxx Caracter: Tabela ASCII Booleano: Verdadeiro ou falso Subconjunto enumerado dias-úteis = (segunda, terça, quarta, quinta, sexta) Subconjunto ordenado notas_validas = maiúsculas = A..Z Simples Ordinais Ficheiros Definidos pelo utilizador Predefinidos Enumerados Subconjuntos Inteiros/Reais Caracteres Booleanos

37 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato 37 Tipos de dados Estruturados São conjuntos ou estruturas que agrupam dados simples ou também outroa dados estruturados Array Matriz de variáveis todas do mesmo tipo Registo Agrupamentos de dados que podem ser de tipos diferentes Conjunto Agrupamentos de dados do mesmo tipo sem repetições Ficheiro Agrupamentos de dados do mesmo tipo num ficheiro em meória secundária Estruturados Matrizes Registos Conjuntos Ficheiros

38 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Instruções básicas Instruções de escrita ou output Escrever(O resultado é:, resultado) Instruções de leitura ou input Ler (nome, morada, resultado) Instruções de atribuição quantidade 500 preço 1,5 nome Silva resultado preço * quantidade

39 António Tavares, 2001/ – Computadores e Linguagens de Programação Acetato Expressões Uma expressão é um conjunto de operandos articulados entre si por operadores Os operandos podem ser dados directos, identificadores de constantes ou variáveis. Os operadores agrupam-se em: –Operadores aritméticos +, -, *, /,... –Operadores relacionais ou de comparação, =, <>, = –Operadores lógicos ou booleanos e, ou, negação,....


Carregar ppt "AlgoritmosSistemas de Informação para a Gestão1ºano 2001/2002Diurno e Nocturno1ª semestre [AAZ95] Azul, Artur Augusto, Técnicas e Linguagens de Programação,"

Apresentações semelhantes


Anúncios Google