Computação e Programação

Documentos relacionados
Programação em MATLAB

Computação e Programação

Funções definidas pelo programador: Passagem de argumentos Formas de Funções comuns Programas modulares

Matrizes como imagens Funções definidas pelo programador: Âmbito das variáveis Apresentação do projecto

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

Computação e Programação

Computação e Programação

Computação e Programação

Computação e Programação

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

Programação em MATLAB

TÉCNICO DE INFORMÁTICA - SISTEMAS

Tópicos avançados sobre funções (cont.)

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª Parte Prof. Sandra Pais Soares

Programação em MATLAB

Computação e Programação

MATLAB. Programação básica

4. Constantes. Constantes pré-definidas

Computação e Programação

Computação e Programação

Computação e Programação

Computação e Programação

COMPUTAÇÃO E PROGRAMAÇÃO

Computação e Programação. MEMec - LEAN 1º Semestre

Programação I Estruturas de Decisão

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

A linguagem algorítmica utiliza o português para a definição dos comandos e tem as seguintes característica:

Computação e Programação

Métodos para a construção de algoritmo

Processo de Desenvolvimento

Programação Orientada a Objetos

Aula 4 Expressões e Operadores Cleverton Hentz

Projecto e Desenvolvimento de Programas

Computação e Programação

Computação e Programação

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

Programação em MATLAB

Working 03 : Conceitos Básicos II

Computação e Programação 201*/201* - 1º Semestre

Computação e Programação

Working 03 : Conceitos Básicos II

Desenvolvimento de Aplicações Desktop

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN

Fluxogramas e variáveis

Estruturas de controle Parte 1

COMANDOS DE SELEÇÃO. > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a == Igual a ~= Diferente de

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Programação Introdução

Puca Huachi Vaz Penna

Noções de algoritmos - Aula 1

Computação e Programação (2010/2011-1º Semestre)

PHP Instalação. Linguagens Server-side Professor Fábio Luís da Silva Santos XAMPP.

Computação e Programação 2009 / 2010

Computação e Programação

Comandos de desvio de fluxo. Expressões lógicas.

JavaScript (Elementos de Programação e Programação Básica)

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Introducao a Programacao Estruturas de decisão

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

Computação e Programação

Noções de algoritmos - Aula 1

Sumários de REDES de COMUNICAÇÃO

Fundamentos de Programação em Python

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Informática para Ciências e Engenharias 2014/15. Teórica 7

Introdução à Computação

MCG114 Programação de Computadores I. Comandos de condição 3/26/18. Comando if. Comando if. Até agora... Comandos de Condição! Comandos de Condição

Comandos em C (cont.)

Introdução a Computação

7 Operadores e Expressões

Conceitos Básicos de C

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

Informática para Ciências e Engenharias 2013/14. Teórica 7

Introdução à Computação

Informática para Ciências e Engenharias 2014/15. Teórica 4

Sintaxe Básica de Java Parte 2

Computação e Programação

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico

Slides trabalhados durante a quinta aula

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Comandos de desvio de fluxo. Expressões lógicas.

Algoritmos e Programação

Tipos de Dados e Variáveis

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Computação e Programação

Aula 4 Objetivos if/else while

Computação e Programação

CONCEITOS DE ALGORITMOS

Estruturas de seleção. Prof.: Jesus

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Fundamentos de programação

Introdução Ao Desenho de Programas

Introdução à Programação

Cell arrays e estruturas: exemplos

Programação II. Aula 3

Transcrição:

Computação e Programação MEMec, LEAN - º Semestre 205-206 Expressões Relacionais Estruturas de Selecção Simples Genéricas Aula Teórica 5 D.E.M. Área Científica de Controlo Automação e Informática Industrial Wrap Up da última aula O que é um algoritmo? uma sequência ordenada de instruções bem definidas e não ambíguas, que realiza uma dada tarefa e que termina em tempo finito. Para que serve? Como se escreve? (no contexto da programação) define a solução de um problema de programação de forma indepente da linguagem Organizando as tarefas a realizar pelo programa utilizando a sequenciação, a selecção e a repetição (chama-se pseudo-código) Computação e Programação 205 / 206 2

Wrap Up da última aula Como saber quais as tarefas a realizar pelo programa para escrever o algoritmo? Para problemas simples as tarefas surgem praticamente da descrição do problema Para problemas de maior complexidade é útil a abordagem top-down Em que consiste a abordagem top-down? Dividir um problema em sub-componentes mais simples, e indepentes, de forma a que esses componentes possam ser analizados individualmente pelo mesmo processo se for necessário E quando se deve parar este processo? quando as tarefas são de implementação directa, e não precisam de algoritmos próprios para serem especificadas Computação e Programação 205 / 206 3 Wrap Up da última aula Qualquer máquina que realize tarefas de computação precisa de obter dados e fornecer dados ao exterior Todas as linguagens de programação possuem funções básicas de Entrada/Saída Computação e Programação 205 / 206 4 2

Implementação de Algoritmos em MATLAB Sequenciação Selecção Repetição Módulos Ficheiros script Estruturas: if if else if elseif switch case Estruturas: for while Funções definidas pelo programador Computação e Programação 205 / 206 5 Alinhamento da AT 5 Expressões Relacionais Estruturas de Selecção Simples Genéricas Computação e Programação 205 / 206 6 3

Expressões Relacionais Expressões que avaliam uma dada condição, obto-se um resultado verdadeiro ou falso Utilizam: operadores relacionais, que relacionam entre si dois valores de tipos compatíveis (>, <,,,, =) operadores lógicos, que relacionam valores lógicos (V, Ʌ,, etc.) Computação e Programação 205 / 206 7 Operadores relacionais em MATLAB Operadores Relacionais Operador Descrição > maior que < menor que >= maior ou igual que <= menor ou igual que == igual a ~= diferente de Computação e Programação 205 / 206 8 4

Valores do tipo logical Em Matlab Verdadeiro é representado por: true Qualquer valor (inteiro, real ou carácter) 0 Em Matlab Falsoé representado por: false 0 Computação e Programação 205 / 206 9 Exemplos de operadores relacionais >> 3 < 5 >> 9 < 2 0 >> 'a' < 'c' Computação e Programação 205 / 206 0 5

Operadores lógicos em MATLAB Operador or xor && & and ~ not Operadores Lógicos Descrição ou escalar ou vectorial (disjunção) função ou função ou exclusivo eescalar e vectorial função e negação função negação (conjunção) Computação e Programação 205 / 206 Tabelas de verdade x y ~x x y x && y xor(x,y) 0 0 0 0 0 0 0 0 0 0 0 0 Computação e Programação 205 / 206 2 6

Exemplos de operadores lógicos >> and(2 > 3, 5 < 6) 0 >> or(2 > 3, 5 < 6) >> not(2 > 3) >> xor(3 < 5, 'a' > 'c') >> 2 > 3 && 5 < 6 0 >> 2 > 3 5 < 6 >> ~(2 > 3) Computação e Programação 205 / 206 3 Regras de precedência dos operadores Operador Símbolo Precedência parêntesis () Maior transposta, exponencial ', ^ negação -, ~ multiplicação, divisão *, /, \ adição, subtracção +, - operador coluna : operadores relacionais <, <=, >, >=, ==, ~= conjunção (e) && disjunção (ou) atribuição = Menor Computação e Programação 205 / 206 4 7

Exemplos de precedências >> 4 > 3 + 0 >> 'e' == 'd' + >> variavel = 3 + 3 < 0 variavel = 0 >> 4 == 3 + && 'd' > 'c' 'd' é convertido para numeral (00) + é realizada (0) 'e' é convertido para numeral (0) == é realizada () resultado verdadeiro!!! Computação e Programação 205 / 206 5 Erros comuns Como implementar a expressão 3<x<5 em MATLAB? >> x = ; 3 < x < 5 >> x = 4; 3 < x < 5 >> x = 7; 3 < x < 5 >> x > 3 && x < 5 Computação e Programação 205 / 206 6 8

Alinhamento da AT 5 Expressões Relacionais Estruturas de Selecção Simples Genéricas Computação e Programação 205 / 206 7 Estrutura if, if-else Descrição: determina a instrução, ou conjunto de instruções, a ser executada em função de uma única condição. Sintaxe: if condição sequência_de instruções_ else sequência_de instruções_2 O elseé opcional Computação e Programação 205 / 206 8 9

Exemplo: área de um circulo Entradas: radius valor do raio (real) Saídas: apresenta área do círculo Algoritmo:. Obter do utilizador o valor radius 2. Se radius 0 a) Apresentar mensagem de erro Caso contrario a) Calculararea = π radius 2 b) Apresentar valor de area Computação e Programação 205 / 206 9 Função if-else: exemplo >> checkradius Please enter the radius: -4 Sorry; -4.00 is not a valid radius >> checkradius Please enter the radius: 5.5 For a circle with a radius of 5.50, the area is 95.03 Computação e Programação 205 / 206 20 0

Erros comuns Escrever a expressão relacional exactamente como a sua dicção >> letter = 'G'; >> letter == 'T' 't' >> letter = 'T'; >> letter == ('T' 't') 0 Computação e Programação 205 / 206 2 Erros comuns: exemplos correctos Leis de DeMorgan ~(a && b) = ~a ~b ~(a b) = ~a && ~b Computação e Programação 205 / 206 22

Alinhamento da AT 5 Expressões Relacionais Estruturas de Selecção Simples Genéricas Computação e Programação 205 / 206 23 Função if-elseif Descrição: determina a instrução, ou conjunto de instruções, a ser executada de entre um conjunto de opções possíveis. Sintaxe: if condição_ sequência_ elseif condição_2 sequência_2 elseif condição_3 sequência_3... else sequência_n Quer a quantidade de else-ifsquer o elsesão opcionais Computação e Programação 205 / 206 24 2

Estrutura if-elseif if condicao_verdadeira sequencia elseif condicao sequencia 2 elseif condicao sequencia 3 else sequencia 4 if condicao_falsa sequencia elseif condicao_verdadeira sequencia 2 elseif condicao sequencia 3 else sequencia 4 Computação e Programação 205 / 206 25 Estrutura if-elseif if condicao_falsa sequencia elseif condicao_falsa sequencia 2 elseif condicao_verdadeira sequencia 3 else sequencia 4 if condicao_falsa sequencia elseif condicao_falsa sequencia 2 elseif condicao_falsa sequencia 3 else sequencia 4 Computação e Programação 205 / 206 26 3

Exemplo: definição por ramos Entradas: x valor abstracto Saídas: y valor abstracto Algoritmo: = < = 2 = >2. Obter do utilizador o valor x 2. Se x < - a) y= Caso contrario se - x 2 a) y= x 2 Caso contrario a) y= Computação e Programação 205 / 206 27 Exemplo definição por ramos >> valor_x Introduza x = -5 y = >> valor_x Introduza x = 0.5 y = 0.2500 >> valor_x Introduza x = 6.5 y = 4 Computação e Programação 205 / 206 28 4

Exemplo: escalar, vector ou matriz Entradas: G array de formato desconhecido Saídas: indica se G é um escalar, um vector ou uma matriz Algoritmo:. Obter do utilizador o valor G 2. linhas= numero de linhas de G 3. colunas= numero de colunas de G 4. Se linhas = ecolunas = a) Apresentar mensagem indicando que G é escalar Caso contrario se linhas = oucolunas = a) Apresentar mensagem indicando que G é vector Caso contrario a) Apresentar mensagem indicando que G é matriz Computação e Programação 205 / 206 29 Exemplo escalar, vector ou matriz >> diz_tipo Introduza G = 20 G é escalar! >> diz_tipo Introduza G = [ 2 3] G é vector! >> diz_tipo Introduza G = [22 44; 33] G é matriz! Computação e Programação 205 / 206 30 5

Estrutura switch Descrição: determina a instrução, ou conjunto de instruções, a ser executada de entre um conjunto de opções possíveis. Sintaxe: switch expressão_a_avaliar case result_ sequência_ case {result_2, result_3} sequência_2... otherwise sequência_3 Quer a quantidade de casesquer o otherwise são opcionais Computação e Programação 205 / 206 3 Estrutura switch switch expressao case result_ sequencia case result_2 sequencia 2 case {result_3,result_4} sequencia 3 otherwise sequencia 4 switch expressao == == case result_ sequencia case result_2 sequencia 2 case {result_3, result_4} sequencia 3 otherwise sequencia 4 Computação e Programação 205 / 206 32 6

Estrutura switch switch expressao case result_ sequencia case result_2 sequencia 2 case {result_3, result_4} sequencia 3 otherwise sequencia 4 A estrutura switch deve ser utilizada apenas com tipos de dados enumeráveis (inteiros ou caracteres) Notar que a estrutura avalia uma única expressãocontra os seus valores possíveis Computação e Programação 205 / 206 33 Exemplo detecta vogal Entradas: letra letra que se prete classificar Saídas: Indica se letraé uma vogal e qual o seu número de ordem entre as vogais Algoritmo:. Obter do utilizador o valor de letra 2. Caso o valor de letraseja a a) Apresentar mensagem indicado que é a ª vogal Caso o valor de letraseja e a) Apresentar mensagem indicado que é a 2ª vogal Computação e Programação 205 / 206 34 7

Exemplo detecta vogal Algoritmo (continuação): Caso o valor de letraseja i a) Apresentar mensagem indicado que é a 3ª vogal Caso o valor de letraseja o a) Apresentar mensagem indicado que é a 4ª vogal Caso o valor de letraseja u a) Apresentar mensagem indicado que é a 5ª vogal Caso contrário a) Apresentar mensagem indicado que não é vogal Computação e Programação 205 / 206 35 Exemplo detecta vogal >> vogais Insira uma vogal: o o é 4ª vogal! >> vogais Insira uma vogal: w w não é uma vogal. >> vogais Insira uma vogal: I I não é uma vogal. Computação e Programação 205 / 206 36 8

Exemplo detecta vogal maiu. e minu. >> vogais Insira uma vogal: d d não é uma vogal. >> vogais Insira uma vogal: E E é 2ª vogal! >> vogais Insira uma vogal: u u é 5ª vogal! Computação e Programação 205 / 206 37 Exemplo número de dias do mês Entradas: mes nome do mês (cadeia de caracteres) Saídas: Algoritmo: Indica o número de dias do mês dado em mes. Obter do utilizador o valor de mes 2. Caso o valor de messeja Janeiro, Março, Maio, Julho, Agosto, Outubro ou Dezembro a) Apresentar mensagem indicado que tem 3 dias Caso o valor de messeja Abril, Junho, Setembro ou Novembro a) Apresentar mensagem indicado que tem 30 dias Computação e Programação 205 / 206 38 9

Exemplo detecta vogal Algoritmo (continuação): Caso o valor de messeja Fevereiro a) Apresentar mensagem indicado que tem 28 ou 29 dias Caso contrário a) Apresentar mensagem indicado que mes não contém um nome válido de um mês Computação e Programação 205 / 206 39 Exemplo número de dias do mês >> dias_mes Insira o nome do mês: Abril Abril tem 30 dias! >> dias_mes Insira o nome do mês: Dezembro Dezembro tem 3 dias! >> dias_mes Insira o nome do mês: junho junho não é o nome de um mês. >> dias_mes Insira o nome do mês: Fevereiro Fevereiro tem 29 ou 29 dias! Computação e Programação 205 / 206 40 20

Estruturas if vs. switch As estruturas if são normalmente utilizadas quando: se avalia um intervalo de valores indepentemente do tipo ser ou não enumerável (e.g. : x ϵ[3, + [, c < letra < t ) A sequência de instruções a executar depe de várias expressões lógicas sem relação entre si A estrutura switch é normalmente utilizada quando : Há uma única expressão de um tipo enumerável para avaliar A sequência de instruções a executar depe de um número reduzido de valores possíveis da expressão, ou de um conjunto de valores que não possam ser expressos na forma de um intervalo Computação e Programação 205 / 206 4 Exemplo intervalo de inteiros Maior facilidade de leitura Menos operações de comparação Computação e Programação 205 / 206 42 2

Exemplo menú Maior facilidade de leitura Se opcaofosse uma expressão com cálculos a estrutura ifteria que a resolver 3vezes ao passo que a switch resolveria apenas Computação e Programação 205 / 206 43 Boas práticas de Programação Use indentação quer no código fonte quer no algoritmopara facilitar a sua leitura. Não coloque condições desnecessárias nas estruturas de selecção. if x == 5 disp('it is a 5!') elseif x ~= 5 disp('it is not a 5!') switch expressao case expr_ sequencia_ otherwise sequencia_2 if x == 5 disp('it is a 5!') else disp('it is not a 5!') Computação e Programação 205 / 206 44 22

Referências Capítulo 3 de Stormy Attaway (202), Matlab: A Practical Introduction to Programming and Problem Solving, Elsevier. As aulas teóricas contêm contribuições dos profs. José Borges e Miguel Silva Computação e Programação 205 / 206 45 23