Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

Documentos relacionados
UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Simulado de Linguagem de Programação Java

Conteúdo programático

PROGRAMAÇÃO DE COMPUTADORES

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

Aula 11: Desvios e Laços

UNIVERSIDADE ESTADUAL PAULISTA. Apostila Pascal Ed Prof. Dr. Galeno José de Sena DMA/FEG CAPÍTULO 8

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

LINEARIZAÇÃO DE GRÁFICOS

Linguagem de Programação

Carlos de Salles Soares Neto Segundas e Quartas, 17h40 às 19h10

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Estruturas de Repetição

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

FastCube 2.0 Programmer Manual

ENG1000 Introdução à Engenharia

Programação de Computadores I. Linguagem C Função

Manual de Programação TED1000 versão TC100 Ethernet

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Lista de Exercícios Critérios de Divisibilidade

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

Redes de Computadores

Capítulo 5: Repetições

Fundamentos de Programação. Diagrama de blocos

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Testes em Laboratório - Análise

Princípios e Conceitos de Desenho de Software. Projeto de Sistemas de Software Prof. Rodrigo Ribeiro

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

aplicação arquivo Condições Gerais de Utilização

Como realizar matrícula online no SIGAA

Programação WEB I Funções

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

XXXII Olimpíada Brasileira de Matemática GABARITO Segunda Fase

Introdução à Aritmética Modular. George Darmiton da Cunha Cavalcanti CIn - UFPE

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Criar e formatar relatórios

Como contar o estoque. -Contagem do Estoque -Contagem Sequencial

Pressuposições à ANOVA

Lista 4 Introdução à Programação Entregar até 07/05/2012

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Prova de Fundamentos de Bancos de Dados 1 a Prova

CURSO DE MATEMÁTICA BÁSICA PROGRAMA DE EDUCAÇÃO TUTORIAL CENTRO DE ENGENHARIA DA MOBILIDADE

Manual Geral de Aplicação Universal Entrada 2008

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

Aula 7 Lista de Exercícios de Raízes de Equações Polinomiais

COMO ELABORAR UM CURRÍCULO

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

FERRAMENTAS DA QUALIDADE FOLHA DE VERIFICAÇÃO

Obtenção Experimental de Modelos Matemáticos Através da Reposta ao Degrau

Introdução à orientação a objetos

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

Gerenciador de Ambiente Laboratorial - GAL Manual do Usuário Módulo Controle de Qualidade Analítico

TCI Sistemas Integrados

Leiaute de arquivos XML para Carta-Circular 3254

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 7

ANÁLISE DE CIRCUITOS I ( AULA 03)

Inteligência Artificial

APOSTILA DE CIÊNCIAS NATURAIS

MANUAL DE INSTALAÇÃO SAT DIMEP PDV CAKE

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

Exercícios: Recursão

Calculando seno(x)/x com o interpretador Hall.

Formas de Pagamento Resumida Vendas Vendedor Vendas Vendedor Resumido Vendas Vendedor Caixa Vendas por Artigos...

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Manual do Usuário Sistema de Acuidade Visual Digital

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Relatório das Provas da 2ª. Fase - Vestibular 2016

Resumo: Estudo do Comportamento das Funções. 1º - Explicitar o domínio da função estudada

Diagrama de Seqüência

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS

Programação de Computadores

Manual para utilização da funcionalidade de importar arquivo XML para prestação de contas

O Cálculo λ sem Tipos

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

LEITURA E ESCRITA FOTO NOME DESCRIÇÃO

TESTES SOCIOMÉTRICOS

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

Portal nddcargo Manual de Utilização Contratante Visão Usuário Financeiro

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

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

Exercícios: Vetores e Matrizes

Driver Next Versão 1.0 de Português

Prof. José Maurício S. Pinheiro - UGB

PROJETO ATUALIDADE EM FOCO

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

MÓDULO 2 Topologias de Redes

Transcrição:

Modularidade Objetivos: Introduzir noções básicas de modularidade Funções e procedimentos

Motivação É muito difícil manter um código quando ele tende a ser grande (com muitas linhas) É preciso organizar o programa em partes bem definidas (módulos)

Motivação Modularidade Reaproveitamento de código Legibilidade

Modularidade Programas podem ser divididos em módulos, que são partes bem definidas de um programa que normalmente são soluções de subproblemas de um problema maior

Modularidade Um programa pode ser separado em: Entrada dos dados Cálculos propriamente ditos Saída dos dados

Reaproveitamento de código Um programa pode ter cálculos repetidos, ou bem parecidos, que podem ser evitados Exemplo: dados 10 variáveis, saber se seus valores são pares: x1 mod 2 = 0 x2 mod 2 = 0 x10 mod 2 = 0

Legibilidade Um programa é legível quando é fácil de ler o código e entender o que está acontecendo Por exemplo, se um cálculo é feito em várias linhas de código que ocupam muitas telas, tem-se maior dificuldade em ler o programa e entender estes cálculos, encontrar erros, etc.

Exemplo Programa que lê dois números e imprime mensagem se ambos forem pares: Begin Read (a,b); If (a mod 2 = 0) and (b mod 2 = 0) then Writeln ('ambos são pares'); End.

Exemplo Programa que lê dois números e imprime mensagem se ambos forem primos: Begin Read (a,b); If a é primo and b é primo then Writeln ('ambos são primos'); End.

Exemplo É possível compreender as questões de legibilidade e aproveitamento de código no programa anterior

Funções e procedimentos A linguagem Pascal não permite escrever programas completamente modulares, mas possui noções de subprogramas do tipo funções e procedimentos, que permitem iniciar o estudo Modula2 e Oberon são exemplos de evoluções da linguagem pascal que permitem escrever programas em outros paradigmas, por exemplo orientação a objetos

Funções e procedimentos Conceitos fundamentais: Semântica da função e do procedimento Escopo de variáveis (globais ou locais) Passagem de parâmetros (por referência ou por valor)

Funções São subprogramas utilizados para fazer um certo cálculo e retornar um valor function <id> (parâmetros opcionais): <TIPO>; <variáveis locais> begin (* código da função *) <id>:= expressão ; end;

Exemplo function eh_par (n: integer): boolean; begin eh_par:= n mod 2 = 0; end;

Exemplo Programa que lê dois números e imprime mensagem se ambos forem pares: Begin Read (a,b); if eh_par (a) and eh_par (b) then writeln ('ambos são pares'); End.

Exemplo function eh_par (n: integer): boolean; begin eh_par:= n mod 2 = 0; end; Observar: nome da função parâmetro passado por valor (ou cópia) o tipo do valor de retorno A instrução eh_par:=

Programa completo program exemplo; var a,b: integer; function eh_par (n: integer): boolean; begin eh_par:= n mod 2 = 0; end; begin read (a,b); if eh_par (a) and eh_par (b) then writeln ('ambos são pares'); end.

Parâmetros por referência program exemplo; var a,b: integer; function eh_par (VAR n: integer): boolean; begin eh_par:= n mod 2 = 0; end; begin read (a,b); if eh_par (a) and eh_par (b) then writeln ('ambos são pares'); end.

Parâmetros por referência program exemplo; var a,b: integer; function eh_par (n: integer): boolean; var teste: boolean begin teste:= n mod 2 = 0; eh_par:= teste; end; begin read (a,b); if eh_par (a) and eh_par (b) then writeln ('ambos são pares'); end.

Funções sem parâmetros program exemplo; (* uso errado!!! *) var a: integer; function eh_par_a: boolean; begin eh_par_a:= a mod 2 = 0; end; begin read (a); if eh_par_a then writeln ('é par'); end.

Funções sem parâmetros Funções sem parâmetro existem, mas seu uso é raro

Exemplo Ler pares de números inteiros até que seja lido algum par contendo um zero. Para cada par (A,B), se ambos forem positivos, calcular o MDC entre eles pelo método de Euclides. Se o MDC for igual a 1, imprimir são primos entre si, caso contrário imprimir não são primos entre si

Exercício Ler trincas de números inteiros (a,b,c) até que seja lido a trinca (0,0,0). Para cada trinca, se a for diferente de zero calcular as raízes reais da equação do segundo grau ax 2 + bx + c = 0. Imprimir mensagem adequada se não houver raízes reais. Use 3 funções: uma para o calculo do discriminante e outras duas para o cálculo das duas raízes.