Programação de Computadores

Documentos relacionados
Programação de Computadores

Programação de Computadores

Programação de Computadores

Programação de Computadores

Programação de Computadores

Programação de Computadores

6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Lógica de Programação

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

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

Programação de Computadores Profa Jacqueline 1

Aulas Anteriores. Detalhes da linguagem de programação

LISTA DE EXERCÍCIOS O que será escrito quando os algoritmos/trechos de algoritmos abaixo forem executados (fazer no papel)?

Subprogramação. Vanessa Braganholo

Lógica de Programação

Aula 6: Entrada e Saída

Registros, Vetores e Matrizes

Introdução à Programação Orientada a Objetos. Prof. Leonardo Barreto Campos 1

BC-0005 Bases Computacionais da Ciência Aula 07 Lógica de Programação: Estruturas de repetição

Estruturas de dados funcionais

CIC 111 Análise e Projeto de Algoritmos II

Linguagem Computacional

Aula 15 - Estruturas de Repetição (p3)

EMPREENDIMENTO: Bosque Heliópolis. Novo Heliópolis - Garanhuns-PE 24 meses após a assinatura do contrato CAIXA. CORREÇÃO: BLOCO: INCC

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

ESTRUTURA CONDICIONAL E SELEÇÃO

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Prática 10 - Funções

Programação científica C++

Aula 3: Algoritmos: Formalização e Construção

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Introdução à Programação Estruturada Parte 2. Material da Prof. Ana Eliza

Introdução à Programação

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

Algoritmos. Prof. Jonatas Bastos Site:

Programação de Computadores I BCC 701 Lista de Exercícios Módulo

Capítulo 8. Estruturas de Controle no Nível de Sentença

SSC304 Introdução à Programação Para Engenharias

Algoritmos. Prof. Jonatas Bastos Site:

Modulo 4: while do while (limites de variáveis)

MAT115 Introdução ao Processamento de Dados Professor: Ibirisol Fontes Ferreira DCC: Departamento de Ciência da Computação

semana 03/05/2014 a 09/05/2014 semana 10/05/2014 a 16/05/2014 semana 17/05/2014 a 23/05/ e 25/05/2014

Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática. Oficina de Programação CI

Controle de Fluxo. Laços e Desvios incondicionais

Terminal. Entrada de dados via teclado. Processamento de dados (cálculos) Tomada de decisão (condição) Saída de dados (via vídeo) Ponto de conexão

Lógica de Programação, Algoritmos e Estruturas de Dados

Estruturas de Repetição

Lógica de Programação

MCG126 Programação de Computadores II

Revisão. Profa Marina Gomes

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

FLUXOGRAMA. Nickerson Fonseca Ferreira

Processamento da Informação Teoria. Laços

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 5: Array. (complemento de dois) Aura - Erick

Programação de Computadores

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Lista de Exercícios Estrutura de Repetição

SEBENTA INTRODUÇÃO Á ALGORITMIA

Exemplos de programação em PASCAL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

No segundo caso, se a condição for verdadeira é executado o bloco-instruções1

Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS

Aula Teórica 09 Funções

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

PROGRAMAÇÃO DE COMPUTADORES I - BCC Vetores e matrizes

Aula Anterior. Decomposição algorítmica (continuação)

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Quarta Aula Prática - 17 de abril de 2013

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Programação de Computadores. Professor Ilaim Costa Junior

ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO

ANÁLISE E PROJETO DE BANCO DE DADOS

Lógica de Programação I. Gilson de Souza Carvalho

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

Alocação Dinâmica de Memória. Programação II

1) Operadores de auto incremento ++ e auto decremento --

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser

Arquitetura de Computadores. Tiago Alves de Oliveira

Sub-rotinas David Déharbe

Seleção Múltipla Laços (while, do-while, for) AULA 05

MATRIZES. Conceitos e Operações

Análise de complexidade

Programação Estruturada

Critérios de divisibilidade Para alguns números como o dois, o três, o cinco e outros, existem regras que permitem verificar a divisibilidade sem se

TÉCNICO DE INFORMÁTICA - SISTEMAS

Aula 6: Comandos Estruturados Estrutura Condicional

Linguagens de Programação

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

3ª Lista de Exercícios de Programação I

... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;

Programação das Aulas

Programação de Computadores IV. Estruturas de repetição Slides cedidos por Bruno Augusto Dorta Marques

Universidade Federal de Sergipe - Campus Alberto Carvalho. Lista 4 - WHILE / REPEAT UNTIL

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

Transcrição:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Programação de Computadores Mais arrays Copyright 2013 IFRN

O que veremos hoje? Métodos de arrays map select inject 2 /14

Arrays Coleção de elementos Comum realizar operação sobre todos os elementos a coleção v 0 1 2 3 4 5...... n-1 3 /14

map Processa um bloco de código para cada elemento do array e gera um array com os resultados do processamento x = [1,2,3,4] quad = x.map do n n*n x 1 2 3 4 Para cada elemento de x retorna o seu quadrado quad 1*1 2*2 3*3 4*4 4 /14

map Processa um bloco de código para cada elemento do array e gera um array com os resultados do processamento x = [1,2,3,4] quad = x.map do n n*n parâmetro para cada processamento Para cada elemento x 1 2 3 4 de x retorna o seu quadrado quad 1*1 2*2 3*3 4*4 4 /14

Blocos Permite processar trecho de código recebo parâmetros Vários métodos de arrays usam blocos Torna o código mais sucinto x = [1,2,3,4] x.método do p BLOCO BLOCO é processado uma vez para cada elemento do array, cujo valor é atribuído a p 5 /14

map Criar um novo array com dados lido do teclado x = [0,1,2,3,4] y = x.map do gets.to_i y = 5.times.map do n gets.to_i 6 /14

map Criar um novo array com dados lido do teclado x = [0,1,2,3,4] y = x.map do gets.to_i y = 5.times.map do n gets.to_i Processe o bloco 5 vezes 6 /14

map Criar um novo array com dados lido do teclado x = [0,1,2,3,4] y = x.map do gets.to_i n não é usado y = 5.times.map do n gets.to_i Processe o bloco 5 vezes 6 /14

map Criar um novo array com dados lido do teclado x = [0,1,2,3,4] y = x.map do gets.to_i n não é usado X y = 5.times.map do n gets.to_i Processe o bloco 5 vezes 6 /14

select Realiza um filtro no array Gera um array com os elementos que satisfaçam um critério de seleção x = [] for i in 1..100 do x << i y = x.select do n n%3==0 novo array com todos os elementos de x múltiplos de 3 7 /14

select Realiza um filtro no array Gera um array com os elementos que satisfaçam um critério de seleção x = [] for i in 1..100 do x << i y = x.select do n n%3==0 novo array com todos os elementos de x múltiplos de 3 y = (1..100).select do n n%3==0 7 /14

select Números pares y=[] for n in x do if (n%2==0) then y << n 8 /14

select Números pares y = x.select do n n%2==0 y=[] for n in x do if (n%2==0) then y << n 8 /14

inject Aplica operação binária com elementos consecutivos do array Usa resultado anterior a = [12,3,13,34,65] total=a.inject do soma,num soma + num [ 12, 3, 13, 34, 65 ] 9 /14

inject Aplica operação binária com elementos consecutivos do array Usa resultado anterior Resultado anterior elemento a = [12,3,13,34,65] total=a.inject do soma,num soma + num [ 12, 3, 13, 34, 65 ] 9 /14

inject Aplica operação binária com elementos consecutivos do array Usa resultado anterior Resultado anterior elemento a = [12,3,13,34,65] total=a.inject do soma,num soma + num [ 12 +, 3 +, 13 +, 34 +, 65 ] 9 /14

inject Aplica operação binária com elementos consecutivos do array Usa resultado anterior Resultado anterior elemento Valor inicial da soma a = [12,3,13,34,65] total=a.inject do soma,num soma + num a = [12,3,13,34,65] total=a.inject(0) do soma,num soma + num [ 12 +, 3 +, 13 +, 34 +, 65 ] 9 /14

inject Pode ser simplificado a = [12,3,13,34,65] total=a.inject do soma,num soma + num 10/14

inject Pode ser simplificado a = [12,3,13,34,65] total=a.inject do soma,num soma + num mesmo que a = [12,3,13,34,65] total = a.inject(:+) 10/14

inject Pode ser simplificado a = [12,3,13,34,65] total=a.inject do soma,num soma + num mesmo que a = [12,3,13,34,65] total = a.inject(:+) 10/14

inject Multiplicar números de um array a.inject(1) do a,b a*b Informar se todos os números do array são positivos a.inject(true) do a,b a and b>0 Achar maior número do array Exercício 11/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares 12/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares map select inject 12/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares map select inject 12/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares map select inject 12/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares map select inject 12/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares map select inject resp1=a.map do n n*n resp2=resp1.select do n n%2==1 resp3=resp2inject(0) do a,b a+b 12/14

Combinando métodos Aumenta o poder de simplificação Exemplo: Dado um array contento 10 números, calcular o quadrado de cada elemento e depois a soma dos quadrados que são números ímpares map select inject resp = a.map do n n*n resp1=a.map do n n*n resp2=resp1.select do n n%2==1 resp3=resp2inject(0) do a,b a+b.select do n n%2==1.inject(0) do a,b a+b 12/14

Considerações O uso de blocos torna o código mais sucinto Encoraja o estilo declarativo Evitar reatribuição de uma valor a uma variável Mais fácil enter o código Facilita correção de erros Documentação completa de arrays em ruby http://www.ruby-doc.org/core-1.9.3/array.html Acessada em 26/06/2012 13/14

Dúvidas? 14/14