PROGRAMAÇÃO OBJECTIVOS DA CADEIRA

Documentos relacionados
TÉCNICO DE INFORMÁTICA - SISTEMAS

Aula teórica 4. Tema 3. Linguagem de Programação Java. Manipulação de informação simples (cont.)

Apontamentos de. Programação e Algoritmia

Algoritmos Fundamento e Prática

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011

Noções de algoritmos - Aula 1

Fundamentos de Programação

ao paradigma imperativo

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)

Variáveis primitivas e Controle de fluxo

Noções de algoritmos - Aula 1

PLANO DE ENSINO. Súmula:

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Conceitos Básicos Linguagem C

Sintaxe da linguagem Java

Modelo de plano analitico

Introdução à Programação LP JAVA

Algoritmia e Programação APROG. Algoritmia 1. Lógica Proposicional (Noções Básicas) Nelson Freire (ISEP DEI-APROG 2013/14) 1/12

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagens de Programação I

Sistemas Numéricos, Operações Lógicas e Tipos de Dados Tratados pelo Computador

Programação de Computadores III

Função Fundamental do SO

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

1.1 o que é um algoritmo... 6

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Programação de Computadores III

Linguagem de Programação. Thiago Leite Francisco Barretto

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

Programação de Computadores:

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Aulas Anteriores. Detalhes da linguagem de programação

LÓGICA DE PROGRAMAÇÃO 1

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Programação em C

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Projeto de Algoritmos

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Introdução à Lógica de Programação

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Programação I Apresentação

Análise de complexidade

Noções de Algoritmos

Algoritmos e Estruturas de Dados

Licenciatura em Informática

Unidade Central de Processamento UCP (CPU)

Computadores e Programação (DCC/UFRJ)

Sistemas de Numeração

Linguagens de Programação Classificação

Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v

Microprocessadores MICROPROCESSADORES. Unidade de Processamento. Sumário

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

ORGANIZAÇÃO DE COMPUTADORES

4 Variáveis. Unesp Campus de Guaratinguetá

Linguagens de Programação Conceitos e Técnicas. Amarrações

Introdução aos Algoritmos

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

2 Fluxogramas e Pseudocódigo. 18 Programação em C/C++ estrutura básica e conceitos fundamentais

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

LINGUAGEM C: COMANDOS DE REPETIÇÃO

CONCEITOS DE ALGORITMOS

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagem de Programação I. Linguagem Pascal

Introdução à Programação em C (I)

1/50. Conceitos Básicos. Programa Básico

CURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO

2 Fluxogramas e Pseudocódigo

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage Algoritmos- continuação

Introdução à Programação

Algoritmos e Programação

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Transcrição:

PROGRAMAÇÃO Engª Mecânica 2007-2008 Sérgio Rodrigues sergio.rodrigues@ipt.pt OBJECTIVOS DA CADEIRA Fornecer aos alunos os conhecimentos básicos de algoritmia, capacitando-os para o desenho e documentação dos algoritmos de suporte a programas informáticos e/ou procedimentos genéricos que venham a ser necessários. Adicionalmente os alunos ficarão capacitados com conhecimentos gerais de programação conducentes à implementação de algoritmos simples recorrendo à linguagem de programação. Aprendizagem e utilização do ambiente Matlab para apoio prático, ao programa da cadeira. 1

PROGRAMA DA CADEIRA Algoritmia Identificação e definição do problema Estruturação e especialização do algoritmo Representação gráfica de algoritmos Fluxogramas Pseudo-linguagem Outras Representações Noções Matemáticas Bases de representação numérica: decimal, binária, octal e hexadecimal Conversões entre bases Operações aritméticas de soma e diminuição na base binária Operações lógicas de AND, OR e XOR na base binária PROGRAMA DA CADEIRA Paradigmas da Programação Estrutura básica de programa Código fonte, Compilação e Linkagem Tipos de dados, operadores e expressões Instruções de controlo de fluxo Tipos de dados derivados Funções e procedimentos Regras de alcance dos nomes e tempo de vida dos objectos Indentação do código fonte Normalização das nomenclaturas utilizadas 2

PROGRAMA DA CADEIRA Ambiente Aplicacional Matlab Ambiente de Trabalho Matlab Variáveis Funções matemáticas elementares Matrizes Operadores Gráficos 2D e 3D Elementos de Controlo de Fluxo Tratamento de Erros Strings e Funções Ficheiros-M BIBLIOGRAFIA Disponíveis na sessão de cópias Apontamentos da cadeira; Carlos Mora, 2006/2007 Frequências e exames efectuados nos anos anteriores Disponível na Biblioteca do IPT-ESTA Dirceu Douglas Salvetti, Lisbete Madsen Barbosa, Algoritmos, Makron Books Sara Baase, Allen Van Gelder, Computer Algorithms Introduction to Design & Analysis, Addison-Wesley Vagner Morais e Cláudio Vieira, MATLAB 7&6, FCA Editora 3

SISTEMAS DE INFORMAÇÃO Sistema de Informação é um sistema que reúne, guarda, processa e faculta informação relevante para a organização (...), de modo que a informação é acessível e útil para aqueles que a querem utilizar, incluíndo gestores, funcionários, clientes, (...). Um Sistema de Informação é um sistema de actividade humana (social) que pode envolver ou não, a utilização de computadores. [Buckingham, et al. 1978] Sistema de Informação é uma combinação de procedimentos, informação, pessoas e Tecnologias de Informação, organizadas para o alcance de objectivos de uma organização. [Alter 1992] TI-TECNOLOGIAS DE INFORMAÇÃO Tecnologias de Informação, são o conjunto de equipamentos e suportes lógicos (hardware e software) que permitem executar tarefas como aquisição, transmissão, armazenamento, recuperação e exposição de dados. Exemplos de T I Hardware Software de sistema Software aplicacional Comunicações Ferramentas de desenvolvimento [Alter 1992] 4

DADOS VS. INFORMAÇÃO Dados, são elementos primitivos, com os quais e através de algum tipo de processamento, se obtém a informação. DADOS PROCESSAMENTO INFORMAÇÃO GESTÃO DO SISTEMA DE INFORMAÇÃO DADOS T I INFORMAÇÃO GESTÃO DA INFORMAÇÃO OUTROS RECURSOS GESTÃO DO SISTEMA DE INFORMAÇÃO 5

GESTÃO DO SISTEMA DE INFORMAÇÃO Gestão de Sistemas de Informação é a gestão do recurso informação e de todos os recursos envolvidos no planeamento, desenvolvimento, exploração e manutenção do SI. [Amaral, Varajão 2000] Investir em TI não significa investir nos Sistemas de Informação ARQUITECTURA GERAL DE UM COMPUTADOR 6

ORGANIZAÇÃO DE UM COMPUTADOR ENTRADA CPU MEMÓRIA SAÍDA Memória Programas Problemas Computacionais TIPOS DE DADOS Tipos Abstractos de Dados Um tipo abstracto de dados, é uma abstracção de uma Estrutura de Dados associado a operações e relações entre os varios elementos e dando enfoque ao seu comportamento em detrimento de qualquer detalhe de representação (e.g.: Pilha ou Stack) Tipos de Dados Programas vs Linguagens de Programação Cada Linguagem tem o seu tipo de Dados (Valores, Operações e Relações) 7

ESTRUTURAS DE DADOS Estruturas de Dados Localizações da memória onde os dados são armazenados. São organizadas conforme o tipo de dados disponiveis na LP, de forma a representar fielmente os tipos abstractos de dados em causa. TÉCNICAS DE PROGRAMAÇÃO Metodologia Genérica Análise do Problema Projecto do Programa: Algoritmo e estrutura de dados Implementação e teste do programa Verificação/Execução do programa 8

ALGORITMOS Algoritmo é uma sequência ordenada e finita de operações bem definidas, que partido de informação fornecida previamente, produz, num tempo finito, um resultado que é a solução de um determinado problema, ou em alternativa a indicação de que a solução não pode ser obtida. Caracteristicas Principais [Horowitz e Sahni 82]: Limitação Definição Entradas Saídas Eficiencia ALGORITMOS-ESTRUTURAS LÓGICAS Um algoritmo pode ser constítuido por qualquer combinação das seguintes estruturas lógicas: Sequêncial Uma acção executa a seguir à outra numa ordem pré estabelecida Repetitiva A execução de uma ou mais acções repete-se cíclicamente de forma finita Selectiva Uma ou mais acções são executadas em detrimento de uma ou mais conjuntos de acções. 9

FORMAS DE Vantagens De universal entendimento Desvantagens Pode gerar Ambiguidades Exemplo: Máquina de calcular simples para a execução das operações de x, :, + e Verificar se a máquina está ligada, senão ligar Limpar memória do visor Recolher 1º operando Recolher operação Recolher 2º operando Efectuar cálculo Apresentar Resultado FORMAS DE Vantagens Visual e Simples Desvantagens Inadequado para problemas complexos 10

FORMAS DE Primitivas: Início de fluxograma Acção Acção Estado com espera Estado sem espera N S Condição Decisão Fluxo Fim de fluxograma n Elemento de ligação FORMAS DE Exemplo: Ex.: Implentar calculadora com as operações +, -, /, x 1. Diagrama de Chapin 2. Pseudo-Código Recolher 1º Operando Recolher Operação Recolher 2º Operando Efectuar Cálculo Apres. Resultado 11

EXERCÍCIO: FACTORIAL Desenvolver um programa que dado um determinado número calcule o seu factorial F = N! = N x (N-1) x (N-2) x... x(n-(n-1) FORMAS DE (Nassi-Schneiderman) 1. Pseudo-Código Vantagens Visual e simples, pelo que facilita o entendimento global do algoritmo Facilita a representação do encapsulamento e da recursividade em relação ao fluxograma Desvantagens Inadequado para problemas complexos Ocupa muito espaço. 12

FORMAS DE Primitivas (mais comuns): Processo Decisão Iteração FORMAS DE Primitivas (mais comuns): Iteração Decisão Múltipla 13

FORMAS DE Exemplo: Ligada? SIM NÃO Ligar Limpar Visor Recolher 1º Operando Recolher Operação Recolher 2º Operando Efectuar Cálculo Apresentar Resultado FORMAS DE Vantagens Permite a representação de um algoritmo, tanto ao seu nível mais abstracto ou ao seu nível mais específico. Simplicidade, Legibilidade e Exactidão. Desvantagens Pode esconder os problemas de eficiência face a linguagem de mais baixo nível. 14

FORMAS DE Primitivas: SEQUÊNCIAIS START Identificação do ponto inicial do algoritmo END Identificação do ponto final do algoritmo INPUT <string>, <variável> Primitiva para recolha de dados do utilizador OUTPUT <string>, <variável> Primitiva para apresentação de dados ao utilizador <variável> <expressão> Atribuição do resultado da expressão à variável indicada FORMAS DE Primitivas (continuação): SELECTIVAS IF <condição> THEN <instruções a executar se condição verdadeira> ELSE <instruções a executar se condição falsa> END IF 15

FORMAS DE Primitivas (continuação): REPETITIVAS FOR <valor inicial> TO <valor controlo> [STEP <incremento>] <instruções a executar enquanto não for atingida a condição limite> END FOR WHILE <condição> <instruções a executar enquanto a condição for verdadeira> END WHILE DO <instruções a executar enquanto a condição for verdadeira> WHILE <condição> FORMAS DE Primitivas (continuação): FUNÇÕES FUNCTION <nome da função> (parâmetros da função[,]) <instruções da função> [RETURN <variável da função>] END FUNCTION CALL <nome da função> (parâmetros da função) 16

FORMAS DE Primitivas (continuação): DECLARAÇÕES VAR <tipo da variável> <nome da variável> [,] <nome da variável> CONST <tipo da const.> <nome da const.> [,] <nome da const.> STRUCT <struct name> <tipo da variável> <nome da variável> [,] <tipo da variável> <nome da variável> END STRUCT FORMAS DE Ex. Implentar calculadora com as operações +, -, /, x, n 2 e n FUNCTION EfectuarCalculo(Op1, Oper, Op2) START VAR Op1 DECIMAL (10,2) Op2 DECIMAL (10,2) Oper Char R DECIMAL (10,2) OUTPUT Introduza o 1º operando INPUT Op1 OUTPUT Introduza o operador INPUT Oper IF Oper necessita 2º operando THEN OUTPUT Introduza o 2º operando INPUT Op2 R = Op1 Oper Op2 ELSE R = Op1 Oper END IF RETURN R END FUNCTION 17

FORMAS DE (...) CALL EfectuarCalculo (Op1, Oper, Op2) OUTPUT O RES. da operação é:, R (...) Ex.: Chamar função EfectuarCalculo OUTRAS NOTAÇÕES for i := 1,..., n do for j := 1,..., n do cij := 0 for k := 1,..., n do cij := cij + aik bkj Szwarcfiter e Markenzon ( [SM94] ) for i 1 até n do for j 1 até n do cij 0 for k 1 até n do cij cij + aik bkj Terada ( [TER91] ) 18

OUTRAS NOTAÇÕES for i 1 to n by 1 do for j 1 to n by 1 do c(i,j) 0 for k 1 to n by 1 do c(i,j) c(i,j) + a(i,k) b(k,j) 1 set i 1 2 set j 1 set c[i,j] 0 3 set k 1 c[i,j] c[i,j] + a[i,k] b[ if k <= n then go to 3 if j <= n then go to 2 if i <= n then go to 1 Horowitz e Sahni ( [HS82] ) Knuth ( [KNU73] ) EXERCÍCIOS ESTRUTURAS DE REPETIÇÃO COM VARIÁVEL DE CONTROLO < FOR > Somatório de Inteiros Calcular a soma dos n primeiros números inteiros pares positivos n = 2 => S = 2 + 4 = 6 n = 3 => S = 2 + 4 + 6 = 12 n = 4 => S = 2 + 4 + 6 + 8 = 20 n = n => S = 2 + 4 + 6 +... + n = 2i n i 1 19

FLUXOGRAMA: SOMATÓRIO DE INTEIROS Esboço do Algoritmo 1. Recolher número de inteiros pares a somar 2. Repetir n vezes calcular número par acumular soma 3. Apresentar resultado (Soma) PSEUDO CÓDIGO: SOMATÓRIO DE INTEIROS PARES START VAR INT i, S INPUT Introduza o número de inteiros que pretende somar, n END S 0 FOR i 1 TO n S = S + 2 x i END FOR OUTPUT O somatório dos, n, primeiros inteiros pares positivos é:, S 20