quarta-feira, 17 de maio de 2017

Algoritmo em Lua - insercao-vetores-n-elemento

--[[
Escreva o algoritmo de ordenação por inserção de um vetor de N (1<=N<=100) elementos
como um módulo.

Algoritmo em Lua - inserção vetores com n elemento
]]
print("digite um numero")
n = io.read("*number")
v = {}
for i=1,99 do
v[i] = math.random(100)
end
v[100] = n
for i=1,99 do
for j=i+1,#v do
if (v[i] < v[j] ) then
v[i],v[j] = v[j],v[i]
end
end
end
contador = false
for i =1,#v do
print(v[i])

if v[i]==n and contador == false then
print("este foi o numero  =>"..n)
contador = true
end
end

Algoritmo em Lua - serie fibonacci

--serie fibonacci
i = 2
vet = {}
vet[0] = 0
vet[1] = 1
print("0")
print("1")
while i<=20 do
vet[i] = vet[i-1]+vet[i-2]
print(vet[i])
i = i+1
end

Algoritmo em Lua - Fatorial

 n = io.read("*number")
i= n-1
result=n*i
while i~=1 do
i = i-1
result = result*i
end
print(result)

Algoritmo em Lua - Campo Minado - manipulando Matriz

--campo minado 13
--[[
Uma matriz 6X6 lógica representa as posições minadas de um jogo. Quando uma posição
possui o valor VERDADEIRO significa que há uma mina ali. Escreva um programa que
informa se é possível percorrer o tabuleiro de um lado ao outro em linha reta (atravessando
uma linha inteira ou coluna inteira) ou diagonal sem passar por uma mina sequer.
]]
matriz = {}
contador = 0
for i=1,6 do
matriz[i] = {}
for j = 1,6 do
matriz[i][j] = math.random(0,1)
print(i.."==>"..j.."==>"..matriz[i][j])
if matriz[i][j] ~= 1 then
print(" ok =>"..matriz[i][j])
contador = contador+1
print(" caminho =>".." I = " ..i.. " J = "..j.." "..matriz[i][j].." "..contador)
break

end

end
end

Algoritmo em Lua - Busca Binária

print("insira o numero procurado")
n=io.read('*number')
v={2,4,6,8,10}
esq=1
dir=5
achou=false

while esq<dir do
  meio=math.floor((esq+dir)/2)
  if n==v[#v] then
    achou=true
    break
  elseif n==v[meio] then
    achou=true
    break
  elseif n>v[meio] then
    esq=meio+1
  elseif n<v[meio] then
    dir=meio-1
  end
end

if achou then
print('achou ')
else
print('n achou')
end

Algoritmo em lua - Buble Sort

--algoritmo de ordenação buble sort
print("insira o numero procurado")
n=io.read('*number')
v={2,4,6,8,10}
esq=1
dir=5
achou=false

while esq<dir do
  meio=math.floor((esq+dir)/2)
  if n==v[#v] then
    achou=true
    break
  elseif n==v[meio] then
    achou=true
    break
  elseif n>v[meio] then
    esq=meio+1
  elseif n<v[meio] then
    dir=meio-1
  end
end

if achou then
print('achou miseravi')
else
print('n achou')
end

Algoritmo em Lua - Somente impares

--somente os numeros impares
for i = 0,90,10 do
for j = 1,5 do
print(i+j)
end
end

Algoritmo em Lua - somente pares

i = 1
while i&lt;= 100 do
  if(i%2==0) then
   print(i)
   i = i+2
  else
  i = i+1
  end
end

Algoritmo em Lua - Principais paradigmas

--principais paradigmas suportados pela linguagem de programação lua
--PARADIGMA FUNCIONAL
function fatorial (n)
 if n == 0 then return 1
    else return n * fatorial (n-1)
    end
end
a = fatorial(5)
print("fatorial :"..a)

--POO - orientado a objetos
Retangulo = {
 altura  = 0,
 largura = 0
}
--metodo calcula a area
function Retangulo:area(self)
 return self.altura*self.largura
end

Retangulo.altura = 3
Retangulo.largura = 6

ret = Retangulo:area(Retangulo)
print("área do Retângulo:"..ret)
print(6%100)
print(6/100)

Algoritmo em Lua - Função de primeira classe

#PRIMEIRA CLASSE
function soma(a,b)
 return (a+b)
end

function produto(a,b)
 return (a*b)
end

function executar(funcao,a,b)
 return funcao(a,b)
end

a = 2
b = 3.5
result = executar(soma,a,b)
print(result)

Algoritmo em Lua - tipos de dados

#TIPOS DE DADOS
vazio = nil
booleano = true
inteiro =10
real = 3.14
string = "paradigmas"
funcao = print
Rotina = coroutine.create(function()print("ola mundo")end)
tabela = {2,"aluno",7.2}

print(type(vazio))
print(type(booleano))
print(type(inteiro))
print(type(real))
print(type(string))
print(type(funcao))
print(type(Rotina))
print(type(tabela))

-- FIM TIPOS DE DADOS
print(10+"2")
if nil~=10 then
 print("ok \n")
end
tabela2= { x = 10, "aluno"}

print(tabela2.x)
print(tabela2[1])

Lista de exercícios programação orientada a objetos resolvida

Resolução da Lista, resposta no final da postagem.

Lista de Exercícios Nro. 1
Programação Orientada a Objetos - SCC204

Lista Resolvida: https://adflyk.com/eeFZbS

Exercício 1: Descreva algumas diferenças básicas entre programação estruturada e programa-
ção orientada a objetos.

Exercício 2: Para que um membro de uma classe-base posam ser acessados por membros da
classe derivada, eles devem ser:
A. public B. protected
C. private D. todas as anteriores
Resposta: __

Exercício 3: Os membros de uma classe-base podem acessar:
A. membros públicos da classe derivada B. membros protegidos da classe derivada
C. membros privados da classe derivada D. nenhuma das anteriores
Resposta: __

Exercício 4: Quais dos seguintes processos são permitidos com classe abstratas?
A. declarar objetos B. retornar um objeto de uma função
C. enviar um objeto como argumento para uma função D. declarar ponteiros
Resposta: __

Exercício 5: Para que serve um construtor e como ele pode ser utilizado? Implemente dois
exemplos:
• um para ser possível fazer 'Classe("POO")'
• e outro para ser possível fazer 'Classe("POO", 30)'.


Exercício 6: Qual a diferença das linhas de código abaixo?
• private Classe varClasse;
• private Classe varClasse = new Classe();


Exercício 7: Considere os métodos (lebre, os construtores também são métodos) abaixo.
Indique se está sendo utilizada sobrecarga de método ou sobrescrita. Explique e diga com que outro
método esta sendo realizada a sobrecarga ou sobrescrita (se for o caso).
1
public class A {
...
public A() { ... }
public A( int x ) { ... }
public void m1() { ... }
public void m1( int h ) { ... }
}
public class B extends A {
...
public B() { ... }
public void m1() { ... }
public void m1( double x, double y ) { ... }
public void m2() { ... }
}


Exercício 8: Crie uma classe em Java chamada Data que inclui três informações como variáveis
de instância:
• mês (int),
• dia (int)
• e ano (int).
A classe deve ter métodos get e set para cada variável e um construtor que inicializa as variáveis e
assume que os valores fornecidos são corretos. Forneça um método displayData que exibe o dia, o
mês e o ano separados por barras normais ( / ). Escreva um aplicativo de teste chamado DataTeste
que demonstra as capacidades da classe Data.


Exercício 9: Escreva uma classe chamada CadernoDeEnderecos que represente os dados
de uma pessoa, como nome, telefone, email, data de aniversário e endereço. Que campos
(variáveis de instância) e métodos essa classe deve ter? Faça uma outra classe para usar/testar a
classe CadernoDeEnderecos.


Exercício 10: Crie uma classe calculadora. Esta classe deve ser abstrata e implementar as
operações básicas (soma, subtração, divisão e multiplicação). Utilizando o conceito de herança crie
uma classe chamada calculadora cienti ca que implementa os seguintes cálculos: raiz quadrada
e a potência. Dica utilize a classe Math do pacote java.lang.


Exercício 11: Criar uma estrutura hierárquica que contenha as seguintes classes: Veiculo
(classe abstrata), Bicicleta e Automóvel.
Os métodos da classe Veiculo são todos abstratos e possuem a seguinte assinatura:
• public  oat acelerar( oat velocidade);
• public void parar();
Estes métodos são implementados nas subclasses Automóvel e Bicicleta. Acrescentar na classe
Automóvel o método public void mudarOleo( oat litros).
2


Exercício 12: Crie uma classe chamada Empresa capaz de armazenar os dados de uma
empresa (Nome, Endereço, Cidade, Estado, CEP e Fone). Inclua um construtor sem argumentos e
um que receba os dados como argumentos e os inicialize. Escreva duas funções, uma para fazer a
interface com o usuário da entrada de dados, Get(), e outra para imprimir os dados, Print().
Use a classe Empresa como base para criar a classe Restaurante. Inclua o tipo de comida, o
preço médio de um prato, duas funções construtoras, a interface de entrada de dados, Get(), e a
função que imprima os dados, Print(). Construa um programa para testar a classe Restaurante.


Exercício 13: Escreva um programa para armazenar dados de veículos. Primeiramente,
crie a classe Motor que contém NumCilindro (int) e Potenci(int). Inclua um construtor sem
argumentos que inicialize os dados com zeros e um que inicialize os dados com os valores recebidos
como argumento. Acrescente duas funções, uma para a entrada de dados, Get(), e uma que imprima
os dados, Print().
Escreva a classe Veiculo contendo Peso em quilos (int), VelocMax em Km/h (int) e Preco em
R$ ( oat). Inclua um construtor sem argumentos que inicialize os dados com os valores recebidos
como argumento. Acrescente duas funções, uma para a entrada de dados, Get(), e uma que imprima
os dados, Print().
Crie uma classe CarroPasseio derivada das classes Motor e Veículo como base. Inclua Cor
(string) e Modelo (string). Inclua um construtor sem argumentos que inicialize os dados com zeros
e uma que inicialize os dados com os valores recebidos como argumentos. Acrescente duas funções,
uma pára a entrada de dados, Get(), e uma que imprima os dados, Print().
Crie uma classe Caminhao derivada das classes Motor e Veiculo. Inclua Toneladas (carga
máxima), AlturaMax (int) e Comprimento (int). Inclua um construtor sem argumentos que inicialize
os dados com zeros e um que inicialize com os valores recebidos como argumento. Acrescente duas
funções, uma para a entrada de dados, Get(), e uma que imprima os dados, Print().



Exercício 14: Implemente uma classe abstracta de nome Forma onde são declarados dois
métodos abstractos:
•  oat calcularArea();
•  oat cacularPerimetro();
Crie, como subclasse de Forma, uma classe de nome Rectangulo cujas instâncias são caracterizadas
pelos atributos lado e altura ambos do tipo  oat. Implemente na classe Rectangulo os
métodos herdados de Forma e outros que ache necessários.
Crie, como subclasse de Forma, uma classe de nome Circulo cujas instâncias são caracterizadas
pelo atributo raio do tipo  oat. Implemente na classe Circulo os métodos herdados de Forma e
outros que ache necessários. Nota: poderá aceder ao valor de Pi fazendo Math.Pi.
Crie, como subclasse de Rectangulo, uma classe de nome Quadrado cujas instâncias são caracterizadas
por terem os atributos lado e altura com o mesmo valor.
Elabore um programa de teste onde é declarado um array, de dimensão 5, do tipo estático
Forma. Nesse array devem ser guardadas instâncias de Rectangulo, Circulo e Quadrado seguindo
uma ordem aleatória. Nota: para gerar números aleatórios crie primeiro uma instância da classe
Random (presente na biblioteca java.util) e para extrair um inteiro entre 0 e n efectue a evocação
nextInt(n). Depois implemente um ciclo que percorra o array evocando, relativamente a cada um
dos objectos guardados, os métodos calcularArea e calcularPerimetro.



Exercício 15: Crie uma classe em Java chamada fatura para uma loja de suprimentos de
informática. A classe deve conter quatro variáveis:
3
• o número (String),
• a descrição (String),
• a quantidade comprada de um item (int)
• e o preço por item (double).
A classe deve ter um construtor e um método get e set para cada variável de instância. Além
disso, forneça um método chamado getTotalFatura que calcula o valor da fatura e depois retorna o
valor como um double. Se o valor não for positivo, ele deve ser con gurado como 0. Se o preço por
item não for positivo, ele deve ser con gurado como 0.0. Escreva um aplicativo de teste chamado
FaturaTeste (em outro arquivo) que demonstra as capacidades da classe Fatura.




Exercício 16: Crie uma classe chamada Empregado que inclui três partes de informações
como variáveis de instância:
• nome (String),
• sobrenome (String)
• e um salário mensal (double).
A classe deve ter um construtor, métodos get e set para cada variável de instância. Escreva um
aplicativo de teste chamado EmpregadoTeste que cria dois objetos Empregado e exibe o salário
de cada objeto. Então dê a cada Empregado um aumento de 10% e exiba novamente o salário anual
de cada Empregado.
Introduza na classe Empregado uma variável de classe capaz de contabilizar o numero de
empregados que passaram pela empresa até a data.



Exercício 17: Crie uma classe em Java chamada InteiroSet. Cada objeto InteiroSet pode
armazenar inteiros no intervalo de 0 a 100. O conjunto é representado por um array debooleans. O
elemento do array a[i] é true se o inteiro i estiver no conjunto. O elemento do array a[j] é false se o
inteiro não estiver no conjunto. O construtor sem argumento inicializa o array Java como 'conjunto
vazio' (todos os valores false).
Forneça os seguintes métodos:
• Método union cria um terceiro conjunto que é a união teórica de dois conjuntos existentes (isto
é, aplicação da função lógica OU sobre os conjuntos e retorna o valor lógico true ou false).
• Método intersecção cria um terceiro conjunto que é a intersecção teórica de dois conjuntos
existentes (isto é, aplicação da função lógica AND sobre os conjuntos e retorna o valor lógico
true ou false).
• Método insereElemento insere um novo elemento inteiro k em um conjunto (con gurando
a[k] como true).
• Método deleteElemento exclui o inteiro m (con gurando a[m] como false).
• Método toSetString retorna uma string contendo um conjunto como uma lista de números
separados por espaço. Inclua somente os elementos que estão presentes no conjunto. Utilize
-"para representar um conjunto vazio.
• Método ehIgualTo determina se dois conjuntos são iguais.
4





Exercício 18: Considere a necessidade de desenvolver uma aplicação para armazenar as
notas de um Estudante. Apresenta-se a seguir a classe Estudante com algumas partes importantes
omitidas.
import java.util.*; // classe Vector
public class Estudante {
// As notas de cada disciplina de cada ano são armazenadas num Vector.
// Como há 5 anos de estudo o estudante tem um array de 5 Vectors.
private static final int NUM_ANOS = 5;
private String nome;
private int numEstudante;
private Vector[] notas = new Vector[NUM_ANOS];
public Estudante(String nome, int numEstudante) {
// Omitido
}
// adiciona nota de uma disciplina de um dado ano ao registro do estudante
public void adicionaNota (int nota, String disciplina, int ano) {
NotaDisciplina nd = new NotaDisciplina(nota, disciplina);
notas[ano].addElement(nd);
}
// Terá outro estudante a mesma nota a uma determinada disciplina?
public boolean igualNota (Object outroEstudante, String disciplina) {
// Omitido
}
} // class Estudante
• Complete o construtor da classe Estudante.
• Crie a classe NotaDisciplina com informação da nota de uma disciplina.
• Complete o método igualNota da classe Estudante. Este método devolve true se outroEstudante
tem a mesma nota a uma determinada disciplina. Note que o parâmetro outroEstudante
pode ser null ou pertencer a uma classe errada.
• Inclua na classe Estudante um método público, que permita determinar a maior nota obtida
pelo estudante. Note que o registro do estudante pode conter só algumas notas ou eventualmente
nenhuma.


/////// RESPOSTA /////////////////////// RESPOSTA ///////////////////////// RESPOSTA ///////////////////////// RESPOSTA /////////////

Conceitos básicos de orientação a objetos
Exercício 1:
Resposta: Orientação a objetos ou "OO" é um paradigma de programação, cujo o propósito é tornar a linguagem de programação mais próximo possível de objetos do mundo real, ou seja, é a representação do mundo real em linguagem de programação. Principais características é a possibilidade de criar classes, Heranças, Polimorfismo, Métodos que são responsáveis por manipular os atributos da classe E uma das suas principais vantagens é o reuso de código.


Exercício 2:
Resposta: A e B.


Exercício 3:
Resposta: D.

Exercício 4:
Resposta: A

Exercício 5:
Resposta: São procedimentos executados na criação do objeto, uma única vez n Têm o mesmo nome da classe. São similares a métodos, mas não têm tipo de retorno. Não fazem parte da definição do tipo do objeto (interface).

1°construtor:
class Classe {
 String nome;
  double valor;
     Classe(String n) {
      nome = n;
      valor = 0;
 }
}
2ºconstrutor:
class Classe2 {
 String nome;
  double valor;
     Classe2(String n,Double v) {
      nome = n;
      valor = v;
 }
}


Exercício 6:
Resposta: A primeira linha está ocorrendo uma declaração ao objeto na segunda linha está criando uma instância de um objeto.

Exercício 7:
Resposta:
public class A {
...
public A() { ... }
public A( int x ) { ... }
public void m1() { ... }
public void m1( int h ) { ... }
}
public class B extends A {
...
public B() { ... }
public void m1() { ... } //sobrescrita
public void m1( double x, double y ) { ... }//sobrecarga
public void m2() { ... }
}


Exercício 8:
 Resposta:
package data;
public class Data
{
    private int dia;
    private int mes;
    private int ano;
    public Data(int d, int m, int a)
    {
        setDia(d);
        setMes(m);
        setAno(a);
    }
    public void setDia(int d)
    {
        dia = d;
    }
    public int getDia()
    {
        return dia;
    }
    public void setMes(int m)
    {
        mes = m;
    }
    public int getMes()
    {
        return mes;
    }
    public void setAno(int a)
    {
        ano = a;
    }
    public int getAno()
    {
        return ano;
    }
    public void displayData()
    {
        System.out.printf("%d/%d/%d", getDia(), getMes(), getAno());
    }

    public static void main(String[] args) {
        // TODO code application logic here
        Data d;
        d = new Data(04,05,2017);
        System.out.println(d.dia+"/"+d.mes+"/"+d.ano);    
        d.displayData();
    }
 
}
Exercício 9:
 Resposta:

package cadernodeenderecos;
public class CadernoDeEnderecos {

 private String nome;
 private String tel;
 private String email;
 private String dataAniversario;
 private String endereco;

 public CadernoDeEnderecos(String nome, String tel, String email,
   String dataAniversario, String endereco) {
  this.nome = nome;
  this.tel = tel;
  this.email = email;
  this.dataAniversario = dataAniversario;
  this.endereco = endereco;
 }

 public void imprimeRegistro(){
  System.out.println("Nome: " + this.getNome());
  System.out.println("Telefone: " + this.getTel());
  System.out.println("Email: " + this.getEmail());
  System.out.println("Data de Aniversário: " + this.getDataAniversario());
  System.out.println("Endereço : " + this.getEndereco());
  System.out.println("=============================================");
 }

 public String getNome() {
  return nome;
 }
 public void setNome(String nome) {
  this.nome = nome;
 }
 public String getTel() {
  return tel;
 }
 public void setTel(String tel) {
  this.tel = tel;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public String getDataAniversario() {
  return dataAniversario;
 }
 public void setDataAniversario(String dataAniversario) {
  this.dataAniversario = dataAniversario;
 }
 public String getEndereco() {
  return endereco;
 }
 public void setEndereco(String endereco) {
  this.endereco = endereco;
 }

    public static void main(String[] args) {
        // TODO code application logic here
        CadernoDeEnderecos cad;
        cad = new CadernoDeEnderecos("NOME","9999999","EMAIL@hotmail.com","25/02/1993","paço do lumiar");
        cad.imprimeRegistro();
     
    }
 
}


Exercício 10:
 Resposta:

/// INICIO CLASSE CALCULADORA

package calculadora;

public abstract class Calculadora {
    protected int resultado;
    public int somar(int valor1, int valor2){
            return this.resultado = valor1 + valor2;
    }
    public int sub(int valor1, int valor2){
            return this.resultado = valor1 - valor2;
    }
    public int multi(int valor1, int valor2){
            return this.resultado = valor1 * valor2;
    }
    public int div(int valor1, int valor2){
            return this.resultado = valor1 / valor2;
    }
 
}

/// FIM DA CLASSE CALCULADORA

///INICIO DA CLASE CALCULADORA CIENTIFICA

package calculadora;

public class CalculadoraCientifica extends Calculadora{
    public double raizQ(double n){
        return Math.sqrt(n);
    }
    public double potencia(double a,double b){
        return Math.pow(a,b);
    }
 
}

/// FIM DA CLASSE CALCULADORA CIENTIFICA

/// INICIO DA CLASSE DE TESTE

package calculadora;

public class Teste {
 
    public static void main(String[] args) {
        CalculadoraCientifica c = new CalculadoraCientifica();
        System.out.println(c.somar(25, 5));
        System.out.println(c.sub(60, 3));
        System.out.println(c.multi(5, 5));
        System.out.println(c.div(5, 5));
        System.out.println(c.raizQ(4));
        System.out.println(c.potencia(2,3));
    }  
}

/// FIM DA CLASSE DE TESTE










ARQUITETURA DE COMPUTADORES - REGISTRADORES DE FLAGS

Disciplina : ARQUITETURA DE COMPUTADORES

os principais registradores  são:

CF:Flag responsável por indicar se há um emprétismo no MSB(most significant bit) Indica em uma soma “vai um“ e em uma subtração o “empresta um”.

PF: Depois de uma instruçäo aritimética ou lógica este bit informa se o resultado tem um número par de "1" ou näo.

AF: indica o "vai um" no meio de um dado (no caso de um byte,se houve "vai um" do bit 3 para o bit 4).

ZF: indica se o resultado de uma operação aritmética é igual a zero (1) ou diferente de zero (0). Se uma operação os valores são iguais o ZF = 1.

SF: indica se o resultado de uma operação com sinal é positivo (0), em caso contrário (1).

OF: Flag de Overflow, indica um estouro da capacidade de armazenamento de um registrador, responsável por testar o vem-um que chega e o vai-um gerado no MSB se iguais (0 e 0 ou 1 e 1)  então o OF = 0 se diferentes, OF = 1 e ocorreu o overflow.

Cultura de Engenharia de Software da Spotify

Disciplina: Engenharia de Software
bom pessoal esse é um trabalho sobre a Engenharia de Software da empresa Spotify, sobre a sua grande inovação na engenharia de software.

Um grande fator do sucesso do spotify é a cultura ágil da equipe de engenharia. Essa cultura tende a ser invisível nós não a percebemos pois ela sempre está entre nós mas se todos entendem a cultura, é mais provável que a preservemos e até mesmo melhorá-la.
 Quando o primeiro music player foi lançado em 2008 o sportify era praticamente uma empresa scrum.Ela proporcionou uma boa cultura baseada em times entretanto alguns anos depois percebemos que algumas das práticas do scrum estavam na realidade atrapalhando.
 Decidiram deixar tudo opcional, ter regras é um bom começo, mas quebre-as quando preciso. ser ágil é mais importante que o scrum, e que os princípios ágeis importam mais que práticas especificas.então foi renomeado o papel de scrum master para “treinador ágil”, pois precisavam de  lideres servidores, mais que mestres em processos, também começaram a usar o termo esquadrão ao Ives de time scrum, e sua força motriz se tornou a autonomia.

 Um esquadrão é um pequeno time,multifuncional, auto organizado, geralmente com menos de 8 pessoas, eles se sentam juntos e possuem uma responsabilidade de ponta a ponta de tudo que é construído design,manutenção,operações, onde cada esquadrão possui uma missão de longo prazo como por exemplo transformar o spotify no melhor lugar para se descobrir músicas ou algo interno como “infra-estruturar para teste a/b”.
A autonomia decide o que construir como construir, e como trabalhar junto durante o trabalho. Claro que há limites como a missão do esquadrão ou a estratégia geral do produto para qualquer área com a qual eles estejam trabalhando e os objetivos de curto prazo que são renegociados a cada 3 meses.

O escritório é otimizado para a colaboração, eles trabalham próximos com mesas ajustáveis e com fácil acesso a tela dos membros da equipe, as reuniões são sempre em lugares próximos do escritório e quase todas as paredes são lousas, a autonomia surgi como a maior motivação pois pessoas motivadas criam coisas melhores e também há um ganho na velocidade ao deixar que as decisões aconteçam no próprio local em cada esquadrão, minimizando o vai-e-vem de trabalho e espera.

Apesar da autonomia o esquadrão tem que está alinhado com a estratégia do produto, as prioridades da empresa e com os demais esquadrões, priorizando a missão geral do que qualquer esquadrão individual, usando o principio de “ seja autônomo, mas não desperdice”.
Em busca por um alinhamento e autonomia os lideres deixam os seus times descobrirem como resolver o problema, o trabalho do líder é comunicar qual o problema que precisa ser resolvido e por que.

Os esquadrões colaboram entre si para encontrar a melhor solução, por conseqüência da autonomia há pouca padronização, para contornar esse problema é utilizada a cultura de polinização para de fato ter algum padrão.
Essa abordagem informal dá um equilíbrio saudável entre consistência e flexibilidade.

O spotify possui um modelo open source interno, que preza pelo compartilhamento de códigos isso melhora a qualidade e dissemina o conhecimento, mas isso só funciona por causa da cultura do respeito mútuo.
Para aumentar o compartilhamento de conhecimento específico foram criadas as “guild” possuindo uma lista de emails e conferências bi-anuais e outros meios de comunicação informal.

A empresa encoraja lançamentos pequenos e freqüentes e investe em teste automatizado, em uma infra-estrutura de entrega continua.
utilizando a cultura de aprender com os erros, sem medo de errar isso reforça  que a confiança e mais importante que controle, pois ser ágil em grande escala necessita ter confiança em grande escala, e sem confiança não há  inovação, estando mais interessado em fracasso rápido e recuperação do que evitar fracassos.

As decisões são baseadas em dados e pesquisas de usuários a fim de resolver um real problema, preocupando-se em inovação do que previsibilidade.
A empresa promove aprendizado e inovação por meio do apoio que oferece para cada equipe investir 10% do seu tempo nos chamados "hack days". Nesses dias, os profissionais são estimulados a aprender e desenvolver novas idéias, compartilhando-as com os seus colegas de trabalho.
Reduzir a burocracia ao mínimo possível para o ambiente ser menos burocrático. O spotify busca criar uma definição conjunta de ser “incrível” motivando toda a equipe. Também prioriza ser uma cultura viva na própria empresa, ou seja, uma busca por excelência de forma natural e motivadora

Exercícios Preparação de soluções Ácidas - Resolução

 Exercícios Preparação de soluções Ácidas - Resolução NAOH 0,5 Mol/L HCL 0,5 Mol/L NaCL 0,1Mol/L Resolução: