Ruby (2/2) André Braga Patrícia Lustosa. Intro Peguem a aula de ontem em /~plvr para ter como referência para os exercícios de hoje.

Slides:



Advertisements
Apresentações semelhantes
Python: Funções Claudio Esperança.
Advertisements

Python: Dicionários Claudio Esperança.
Programação em Java Prof. Maurício Braga
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Parte I Capítulo 5 Reutilizando código e escrevendo funções.
Software Básico Silvio Fernandes
LINGUAGEM C.
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Diagrama de Classes.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo
Instrutor: Nilo Menezes
Prof. Msc. Raul Paradeda Aula 3 Fundamentos
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
CRIANDO OBJETOS EM JAVA
Introdução a Computação e Cálculo Numérico
Programação Orientada a Objetos com Java
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula PHPdoc Prof. Naércio Filho Técnico em Informática
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Tópicos avançados em internet A
Programação II Estruturas de Dados Aula 02 - continuação
Programação I Aula 2 (Métodos)
Tipos Abstratos de Dados
Análise Léxica Primeira fase de um compilador
Classes, Objetos, Atributos e Métodos JAVA
Técnicas de Desenvolvimento de Programas
Banco de dados.
Paradigma funcional.
Analise Semântica aula-10-analise-semântica.pdf.
Orientação a Objetos Parte II
Implementação Orientada a Objetos – Aula 03
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
Programação Orientada à Objetos
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Equipe: Osias Carneiro, Anderson Soares, André Araújo
Tradução Dirigida por Sintaxe
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
William Ivanski Curso de Programação C#. Sumário  Exercícios para Fixação  Utilizando uma IDE  Elementos da Linguagem C#  Valores  Variáveis  Tipos.
Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and.
Linguagens de Programação
Faculdade Pernambucana - FAPE Setembro/2007
Construtores e Destrutores
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Recursividade Profs. De Prog2 e Lab2.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
Modificadores Programação II.
Programação Computacional Aula 9: Meu primeiro programa em C
PLP – JavaCC Java Compiler Compiler
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Módulo II Capítulo 1: Orientação a Objetos
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Array e ArrayList LPOO – 01/09/14.
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Felipe Nunes Flores – Programa de Educação Tutorial.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Informática – Senai. Include e Require O PHP tem duas formas normalmente usadas para incluir o conteúdo de um arquivo PHP, em uma outra página. São elas:
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Ruby (2/2) André Braga Patrícia Lustosa

Intro Peguem a aula de ontem em /~plvr para ter como referência para os exercícios de hoje

Exercício Construa uma Expressão Regular para buscar por padrões que contenham a expressão “~if734” e que não tenham: – Nenhum número imediatamente após – Nenhum espaço em branco diretamente antes, mas haja algum outro dígito Faça um método para calcular o fatorial de um número usando a estrutura de controle times

Métodos 1)

Return Values Métodos retornam o valor do último statement avaliado Um return statement explícito também pode ser usado

Default Value Argument Valor default de um parâmetro pode ser especificado durante a definição de um método

Variable Length Argument List Último parâmetro de um método pode ser precedido por * indicando que mais de um parâmetro pode ser passado para a função Esses parâmetros são colecionados e um array é criado

Array Argument Asterístico (*) também pode ser usado para preceder um array passado como parâmetro para um método O array é expandido e os parâmetros são passados como se tivessem separados por vírgulas

Hash Argument Hash pode ser passado quando uma função é invocada Une o melhor dos dois mundos: paramêtros com nome e quantidade de parâmetros variável

Declarando Visibilidade Por default, todos os métodos são public O acesso pode ser restringido através dos métodos public, protected ou private – Não são palavras chave, mas sim métodos que operam na classe, alterando dinamicamente a visibilidade dos métodos

Declaring Visibility Se private for chamado sem argumentos, ele seta para private todos os métodos subsequentes

Declaring Visibility

Exercício Defina uma classe Funcionário que contém um construtor que recebe um nome e n dependentes (n >= 0) Crie um novo funcionário com 3 dependentes e imprima-os

Blocos 2)

O que são blocos? Funções (ou pedaçoes de código) anônimas Bloco como parâmetro para uma função – Realizar iterações passando elementos como parâmetro para a “função anônima”-parâmetro

Passando blocos yield()

Blocos com parâmetros yield() pode receber os parâmetros do bloco

Iteração each, map, select, reject Reject funciona da mesma forma

Map & ! new

Exercício 1 Faça um programa que crie uma PG com fator 7 de 15 números e: – Exclua os elementos menores que 36 – Crie um Hash com os elementos que sobrarem, onde a chave de cada elemento é o próprio valor no formato de String. – No final, imprima as chaves e valores do Hash. Dica: Vá no irb (Hash.methods ) ou no fxri para descorir métodos da classe Hash.

Exercício 2 Use o código da questão anterior de forma que ele seja passado como um bloco para uma outra função. Esse bloco deve receber como parâmetro a quantidade de elementos da PG, o fator e o valor mínimo.

Exceções 3)

Exception Class Exceções são implementadas como classes que herdam de Exception

Exception Handling

DSL 4)

Embedded DSL Embutir uma DSL em uma linguagem host pode ser usada para defini-la, no lugar de construir um compilador ou interpretador

Embedded DSL Embutir uma DSL em uma linguagem dinâmica é uma técnica conhecida – Sintaxe não-intrusiva – Habilidade de avaliar expressões a medida que elas aparecem no programa Em uma embedded DSL, o designer extende as construções da linguagem host com construções de domínio específico ao invés de construir um parser

Meta-modelos Meta-modelo define a sintaxe abstrata de uma DSL Uma linguagem de meta-modelagem pode ser considerada uma DSL para definir meta- modelos

Embedded DSL Essa abordagem para implementar uma DSL gasta menos tempo do que um gerador de parser – Não há necessidade de lidar com gramática ou árvore sintática abstrata Por outro lado, definir uma sintaxe abstrata arbitrária é impossível, porque há a limitação da sintaxe da linguagem host

Ruby on Rails 5)

Convention over Configuration Don’t Repeat Yourself (DRY) Agile Development Environment Práticas-padrão Adaptabilidade Geração de código Testes Recompilação, deploy…

Alguns pontos Migrations – Gerencia evolução de um schema (BD) Rake – Linguagem de “build” para Ruby – Automatiza tarefas: create e drop de tabelas, testes, atualiza arquivos de suporte, etc. Generator URL Routing – Permite expressões regulares

Scaffolding Cria “esqueleto” Prototipação rápida Padrões para: – Listar – Criar – Atualizar – Remover Lógica e template defaults