Ruby Introdução.

Slides:



Advertisements
Apresentações semelhantes
Behaviour-Driven Development em Ruby
Advertisements

Estruturação de Linguagens (Pascal e C++)
Python: Funções Claudio Esperança.
Python: Classes Claudio Esperança.
Programação de Computadores
Paulo Marques Hernâni Pedroso
Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle.
Linguagens de Programação Orientadas a Objetos
Orientação a Objetos Classes
Robson Godoi / Sandra Siebra
Classes e objetos P. O. O. Prof. Grace.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
O Portal do Estudante de Computação
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Introdução a linguagem Python
Unidade I: “Dê um mergulho rápido”
LISTAS DUPLAMENTE ENCADEADAS
Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end.
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
JAVA Orientação a Objetos
O que é o Delphi ? Uma IDE (Integrated Development Enviroment)
Programação I Aula 2 (Métodos)
Introdução à Programação Orientada a Objetos com Java
Classes, Objetos, Atributos e Métodos JAVA
Ruby Viviane Souza (vess).
Com coleções, cursor não é mais necessário
Java Bytecode Software Básico Mitsuo Takaki.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
UML e Java, Introdução AB,20001 Diagrama de Classes UML e JAVA Problema Existem diversos tipos de contas bancárias. Todas as contas têm um atributo saldo.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
Aula 04 – 22/03 Listas Duplamente Encadeada – Listas Encadeada Circular – Lista Duplamente Encadeada Circular.
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.
Orientação a Objetos Parte II
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Laboratório de Programação II Método Construtor Dados e Métodos de Objetos Prof Edivaldo - Network.
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and.
Paradigmas da Programação – Semestre 1 – Aula 3 Professor: Eduardo Mantovani )
Analise e Conceito de C++ e C#
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.
Artur Lira Diego Lemos Lucas Figueiredo Thiago Rocha
Conteúdos Programáticos Criação de classes em VB Criar Criar Manipular Manipular Tipos de acesso Tipos de acesso Constructores Constructores.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Modificadores Programação II.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Linguagem JAVA Ariane Machado Lima.
Lógica Aplicada em Java X25 Treinamentos e Consultoria Adler Medrado Outubro / 2009 Lógica Aplicada em Java X25 Treinamentos e Consultoria Adler Medrado.
Conceitos de OO em Java Parte I
Desenvolvimento WEB Prof. Renato de Oliveira Bastos
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
C# - Unity Introdução. Criando um script Mono Develop Uma IDE.
Módulo II Capítulo 1: Orientação a Objetos
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Orientação a Objetos com PHP
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Raniere ferreira do prado
Revisão Turma – WEB JavaScript.
Variáveis, expressões e comandos Dilvan Moreira. Lembrando …  Instalação normal (para utilizar no PC com Windows) 
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Transcrição da apresentação:

Ruby Introdução

Ruby O que é Ruby? Interpretada / Orientada a Objetos Sintaxe simples / Case Sensitive Herança Única Blocos delimitados por { ... } ou do ... end Não requer declaração de variáveis É Livre!

Ruby Operadores aritméticos: Operadores relacionais: + - / * ** % Operadores relacionais: == != > < >= <= Operadores lógicos: and or

Ruby Tipos Númericos Integer 2.is_a?(Integer)‏ Float 2.5.is_a?(Float)‏

Ruby String “Hello World” “Hello World” + “ Hello Bahia” “Hello World ” * 3 (Estranho não?)‏

Ruby Variáveis Constantes Exemplo: nome = “João” Dinamicamente tipada nome = “João” (String)‏ nome = 25.6 (Float)‏ Constantes Iniciam com primeira letra maiúscula e pode ser redefinida Pi = 3,14

Ruby Funções Métodos Predicados def soma(x,y)‏ end Terminam com ? e retornam true ou false Utilizados para testar uma condição Ex: [1,2,3].include? 1 => true

Ruby Condicional - IF If ... elsif ... else ... End Ex: If 2>1 and 2>0 puts “oi” elsif 2>3 puts “oi2” else puts “oi3” end

Ruby Condicional – Unless Significa “Se não” Negativa do if Ex: achou = true unless achou puts “não achou” else puts “achou” end

Ruby Loops 4.times do puts “oi\n” end

Ruby Loops Loops While: For while(a<5)‏ end i=0 f=5 for i in (i..f) puts a a++ end Loops For i=0 f=5 for i in (i..f) puts i end

Ruby Arrays – Índice inicia em 0 num = [1,2,3,4] num[0] => 1 num << 45 OU num.push 45 num.sort num.reverse num.length

Ruby Arrays – Iterator friends = ["Melissa", "Jeff", "Ashley", "Rob"] friends.each do |friend| puts "I have a friend called " + friend end

Ruby Hashes friend = { } puts friend[city] => “Toronto” "first name" => "Jeffrey", "last name" => "Biggs", "address" => "34 Airport Rd", "city" => "Toronto", :province" => "Ontario" } puts friend[city] => “Toronto”

Ruby Exercício

Ruby Classes Objetos

Orientação a Objetos Em Ruby .... Exemplo: Classe: String Método: to_i Exemplo: “oi”.methods

Em Ruby... Declarando Classes #Classe Address.rb Class Address => Define uma classe def initialize(street) => Construtor com um parâmetro @street = street => @street variável de instância privada end => fim do método end => fim da classe

Em Ruby... Com instanciar a classe? Métodos “Especiais” addr = Address.new(“Av. Adhemar de Barros”)‏ Métodos “Especiais” getters => Objetivo de recuperar o valor de um detrminado atributo do objeto setter => Objetivo de setar o valor de um determinado atributo do objeto

Em Ruby... Ainda na classe Address def street @street end def street=(value) @street = value

Em Ruby... Podemos fazer... addr.address => Retorna “Av. Adhemar de Barros” addr.address= “Campo Grande” addr.address => Retorna “Campo Grande”

Em Ruby... Exemplo: Class Person attr_accessor :first_name, :address def initialize @first_name = “ ” @address = Address.new end

Em Ruby... Herança Sobrecarga de métodos Variável de Classe Operador: < Sobrecarga de métodos Não existe em Ruby! Variável de Classe Iniciam com @@ Método de classe Nome_classe.Nome_Metodo

Ruby Exercício

Ruby Testes Unitários

Ruby Testes Unitários ???????

Ruby - Classe a ser testada class Fatorial def fatorial(n) if(n == 0 or n==1) 1 else n*fatorial(n-1) end

Ruby – Unidade de Testes require 'test/unit' require "Fatorial" class TC_Fatorial < Test::Unit::TestCase def setup @fatorial = Fatorial.new puts "setup" end def test_fatorial_0 assert_equal(1,@fatorial.fatorial(0), "fat(0) = 1") def test_fatorial_1 assert_equal(1,@fatorial.fatorial(1), "fat(1) = 1") def test_fatorial_6 assert_equal(1,@fatorial.fatorial(1), "fat(6) = 24") end def test_numero_negativo assert_raise(SystemStackError) do @fatorial.fatorial(-1) def teardown @fatorial = nil puts "teardown"