Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro.

Slides:



Advertisements
Apresentações semelhantes
Linguagem PASCAL Estruturas de Controle
Advertisements

Laboratório de Programação
Capítulo 1 A linguagem da Lógica Proposicional
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Álgebra Relacional Marcelo Mendes Manaus
Engenharia de Software
Especificação de Consultas
Conceitos Gerais relacionados a Recuperação de Informação
Análise Léxica (Parte 2)
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Software Básico Silvio Fernandes
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Template Method Projeto de Sistemas de Software. © LES/PUC-Rio Template Method Motivação.
Introdução à Linguagem Prolog
Algoritmos e Programação Estruturada Conceitos básicos
Tópicos em Engenharia de Software II
ASSUNTO 11: Raiz quadrada exata de números inteiros
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Algoritmos com seleção
AULA – Linguagem C – Vetores, Ponteiros Estruturas
FLG Análise Espacial e Geoprocessamento
Introdução ao -calculus
Listas com Ponteiros Listas encadeadas Listas circulares.
Linguagem C Estruturas de Seleção.
Paradigmas de programação
Linguagem de Expressão (EL)
Aula prática - análise contextual
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
Radiciação e potenciação
Tudo e Todo Richard Brunel Matias.
Sumário: Funções (continuação).
Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de.
Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner
Projeto de PLP Resultado Final Guilherme Oliveira Everton Marques
Atribuição e Composição Sequencial Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 3 Grupo:João Collier de Mendonça Lucas Carneiro.
Introdução à Programação de Computadores
Prof. Rafael mesquita Zeros de funções Prof. Rafael mesquita
DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 FORMADOR Gonçalo Miguel MÓDULO 25. Introdução ao ActionScript 3.0.
Linguagem e Ambiente Scratch
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
Algoritmos e Estruturas de Dados I – Recursão
Capítulo II Gramáticas e Linguagens
Diagrama de Atividades
Paradigma funcional.
Atribuição e Composição Sequencial Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 3.
Iteração – Capítulo 5 Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Integrantes: Alex Motta Carlos Nascimento Paulo Maia.
Algumas notas sobre a linguagem de programação C
Algoritmos Estruturados
Introdução à Linguagem JavaScript
Tipos Estruturados Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 9.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Prof.: Sergio wagner.
Revisão Luis Antonio Tavares
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Refinamento Motivação e Objetivos –Tornar especificações mais concretas (mais próximas de uma implementação) que as desenvolvidas inicialmente –Aumentar.
Registradores.
A Linguagem Formal de Especificação VDM-SL
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Matemática Revisão Global Professor Rivelino.
Diagramas de Caso de Uso
Refinamento rose, roze, z-eves. introdução refinamento em diagramas UML Roze, Z-Eves.
Programação de Computadores - 1
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
1 Indução Definições Indutivas Prova por indução Referência: Language, Proof and Logic Jon Barwise e John Etchemendy, 1999 Capítulo: 16.
Estudo de caso: Insertion Sort Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Capítulo 10.
Programação Computacional Aula 9: Meu primeiro programa em C
Visual C# (parte 2) Prof. Igor Conrado Alves de Lima – Operadores, estruturas de decisão, vetores (arrays), e estruturas de.
Solução Numérica de Equações
Conteúdo de Laços de Repetição para os alunos do 7º ano EVL.
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
Transcrição da apresentação:

Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro

Capítulo 7 – Estudo de Caso da Raiz Quadrada Introdução Aplicação prática e exemplo de aplicação da lei de refinamentos; O encontro de invariantes ajuda-nos a refresca os assunto já visto.

Capítulo 7 – Estudo de Caso da Raiz Quadrada Programa Abstrato: O ponto de início Dados um número natural s, atribuímos a um número natural r, o inteiro mais próximo que não exceda a raiz quadrada de s (√s). Por Exemplo: s = 29, r = 5. O programa abstrato: var r,s : N r := [√s]

Capítulo 7 – Estudo de Caso da Raiz Quadrada Programa Abstrato: O ponto de início No programa abstrato, os símbolos utilizados não são códigos: √ e ; Nosso trabalho seguinte é remover esse símbolos para que eles possam ser utilizados em códigos de um linguagem de programação.

Capítulo 7 – Estudo de Caso da Raiz Quadrada Removendo os operadores ‘exóticos’ Chamamos de exóticos por não serem tratados como códigos ; O primeiro passo é remover a função de raiz e a função piso do programa: Simples especificação 1.7 : r: [ r = [ √s]] Definição de : r : [ r ≤ √s < r + 1] Definição de √ : r : [ r² ≤ s < (r + 1) ²]

Capítulo 7 – Estudo de Caso da Raiz Quadrada Removendo os operadores ‘exóticos’ Podemos observar que a designação do programa está escrito agora para o cliente ; Usou-se o poder dos operadores, deixando as expressões limpas e sucintas; Nossa tarefa agora é mover de uma designação para uma especificação: A especificação é mais fácil para desenvolver; Necessitamos de uma fórmula no lugar de uma expressão para explanar as definições das funções raiz e piso.

Capítulo 7 – Estudo de Caso da Raiz Quadrada Procurando a invariante A pós condição na iteração 5.5 é da forma: inv ^ ¬GG. Investigar a re-escrita para as pós-condições: r² ≤ s ^ ¬ (s ≥ (r + 1) ²) e s s) A primeira opção nos deixa com a opção: do s ≥ (r + 1) ² -> …. od, com a invariante r² ≤ s A segunda : do r² > s ->.... od, com invariante s < (r + 1) ²

Capítulo 7 – Estudo de Caso da Raiz Quadrada do od var (1) Lei Iteração Lei 3.3 – Comp. Seq. Procurando a invariante

Capítulo 7 – Estudo de Caso da Raiz Quadrada if fi (1) (2) Lei 4.1 (3) Lei 4.1 (2) (3) Procurando a invariante

Capítulo 7 – Estudo de Caso da Raiz Quadrada do if fi od var r qp1 p2p3 valor Código Final