Social Icons

Botão sem ruído (Erros)

Este exemplo demonstra o uso de um interruptor como uma chave: cada vez que é pressionado, o LED (ou o que for) é ligado (se estiver desligado) e vice-versa. Além disso, também funciona como filtro para o ruído mecânico característico dos interruptores, sem o qual, ao pressionar o interruptor, detectaríamos uma seqüência de múltiplos toques. O código a seguir faz uso da função millis() para acompanhar o momento em que o interruptor é pressionado.

Circuito

O interruptor no pino 7 e o LED no pino 13.

Código

int inPin = 7;      // o número do pino de entrada
int outPin = 13;  // número do pino de saída

int state = HIGH;  // estado atual do pino de saída
int reading;       // estado atual do pino de entrada
int previous = LOW;  // estado anterior do pino de entrada

// as seguintes variáveis são do tipo ''long'' porque o tempo,
// medido em milissegundos,
// transformar-se-á logo em um valor grande demais para um ''int''
long time = 0;      // último momento em que o pino de saída foi atualizado
long debounce = 200 // tempo do filtro, aumente se ocorrer irregularidades

void setup()
{
  pinMode(inPin, INPUT);
  pinMode(outPin, OUTPUT);
}

void loop()
{
  reading = digitalRead(inPin);

  // se acabamos de pressionar o interruptor (isto é, se a entrada
  // foi de LOW para HIGH), e esperamos o bastante desde o
  // último toque de forma a ignorar o ruído...  
  if (reading == HIGH && previous == LOW && millis() - time > debounce)
 {
    // ... inverta a saída
    if (state == HIGH)
      state = LOW;
    else
      state = HIGH;

  // ... e lembre-se do momento do último toque
    time = millis();    
  }

  digitalWrite(outPin, state);

  previous = reading;
}

Controle um círculo de LEDs com um joystick

Circuito completo

Detalhe do cabeamento dos LEDs

Detalhe do cabeamento ao Arduino

Como funciona?

O joystick fornece coordenadas (x,y) ao Arduino de acordo com a sua posição. Como pode se ver, o espaço no qual o joystick se move é um círculo. Esse círculo será o que chamaremos de agora em diante de 'Torta' (veja a parte inferior direita da primeira imagem).
A única coisa que precisamos entender é que a Torta está dividida em 8 fatias. A cada fatia há um LED correspondente. (Veja a figura abaixo). Dessa forma, quando o joystick fornece-nos uma coordenada, ela necessariamente pertencerá a uma dessas fatias. O programa então acende o LED correspondente à fatia.

Código

 /* Controle_CírculodeLED_com_joystick
  * ------------
  * Este esboço controla um círculo com 8 LEDs
  * via joystick
  *
  * Primeiro lê-se os dois pinos analógicos conectados
  * ao joystick feito com dois potenciômetros
  *
  * Essa entrada é interpretada como coordenadas (x,y)
  *
  * Em seguida, calcula-se qual das 8 zonas possíveis 
  * faz parte das coordenadas (x,y)
  * 
  * Finalmente acende-se o LED que está na zona detectada
  *
  * @authors: Cristina Hoffmann and Gustavo Jose Valera
  * @hardware: Cristina Hofmann and Gustavo Jose Valera
  * @context: Arduino Workshop at medialamadrid
  */

  // Declaração de variáveis

  int ledPins [] = { 2,3,4,5,6,7,8,9 };
 // Matriz com 8 LEDs organizados em círculo
  int ledVerde = 13;
  int espera = 40;     // Tempo necessário para ligar o LED
  int joyPin1 = 0;   // variável deslizante conectada ao pino analógico 0
  int joyPin2 = 1;   // variável deslizante conectada ao pino analógico 1
  int coordX = 0;  // variável para ler o valor no pino analógico 0
  int coordY = 0;    // variável para ler o valor no pino analógico 1
  int centerX = 500;  // valor para a posição central do joystick
  int centerY = 500;
  int actualZone = 0;
  int previousZone = 0;

  // delegação dos pinos
  void setup()
  {
    int i;
    beginSerial(9600);
    pinMode (ledVerde, OUTPUT);
    for (i=0; i< 8; i++)
    {
      pinMode(ledPins[i], OUTPUT);
    } 
  }

  // função que calcula a inclinação da linha que passa pelos pontos
  // x1, y1 e x2, y2
  int calculateSlope(int x1, int y1, int x2, int y2)
  {
    return ((y1-y2) / (x1-x2));
  }

  // função que calcula em qual das 8 zonas possíveis
  // estão as coordenadas x, y dado o centro cx, cy
  int calculateZone (int x, int y, int cx, int cy)
  {
    int alpha = calculateSlope(x,y, cx,cy); 
// inclinação do segmento entre o ponto e o centro

    if (x > cx)
    {
      if (y > cy) // 1o quadrante
      {
        if (alpha > 1) // Inclinação > 1, portanto parte mais alta do 1o quadrante
          return 0;
        else
          return 1;    // Caso contrário, parte mais baixa do 1o quadrante
      }
      else // 2o quadrante
      {
        if (alpha > -1)
          return 2;
        else
          return 3;
      }
    }

    else
    {
      if (y < cy) // 3o quadrante
      {
        if (alpha > 1)
          return 4;
        else
          return 5;
      }
      else // 4o quadrante
      {
        if (alpha > -1)
          return 6;
        else
          return 7;
      }
    }
  } 

   void loop() {
    digitalWrite(ledVerde, HIGH); 
// flag para sabermos que se entrou em loop(), é opcional

    // leia o valor dos potenciômetros
    coordX = analogRead(joyPin1);   
    coordY = analogRead(joyPin2);   

    // calcule em qual x
    actualZone = calculateZone(coordX, coordY, centerX, centerY); 

    digitalWrite (ledPins[actualZone], HIGH);     

    if (actualZone != previousZone)
      digitalWrite (ledPins[previousZone], LOW);

   // imprima no terminal o valor cartesiano da coordenada
   // e a zona ao qual faz parte
   //não é necessário caso o Arduino rode em modo autônomo
    serialWrite('C');
    serialWrite(32); // imprima espaço
    printInteger(coordX);
    serialWrite(32); // imprima espaço
    printInteger(coordY);
    serialWrite(10);
    serialWrite(13);

    serialWrite('Z');
    serialWrite(32); // imprima espaço
    printInteger(actualZone);
    serialWrite(10);
    serialWrite(13);

  // Não apague a linha abaixo, ela é necessária!
    previousZone = actualZone;
   // delay (500);

 }

2.1) Seu Primeiro Programa

 Essa é a tela do VisuALG comentado nos últimos posts como opção para desenvolvimento.


Onde encontramos uma ótima base para programação inicial...


Bom, para início vamos definir o que fazer, que problema resolver...

DICA: Crie uma pasta em um local de sua preferência com nome EXERC_EXEMPLO e vá posteriormente salvando cada exercício que fez a fins de estudo, organização e ajuda se precisar relembrar algo.

O QUE ESTIVER ASSIM É SEMPRE UM CÓDIGO
//comentários não compilados pelo computador

A mensagem acima só para exemplificar como separo código de texto normal!

Problema_Exemplo1: Mostrando uma Mensagem na tela :



algoritimo "Problema_Exemplo"//aqui define-se o nome do programa

var 
//aqui definimos o nome e tipo de cada variavél
exemplo : Caracter
inicio 
//aqui vai as intruções e comandos
escreva('Olá Mundo')




fimalgoritimo



Explicação dos Comandos Usados

escreva: Escreve uma mensagem na tela
escreval: Escreve uma mensagem e pula uma linha
Uso:

escreva('escreva aqui sua mensagem')

Tudo que estiver entre as ' ' não vai ser executado e sim apenas Mostrado.
Se você não colocar por exemplo as aspas e tivesse uma variavel para mostrar iria usar assim

escreva(variavel) ou
escreva('Mensagem que voce deseja escrever',variavel)


Perceba que a parte entre aspas é uma mensagem não compilada e sim mostrada e a variavel é o valor que deseja mostrar.


Vamos para o próximo?

Problema_Exemplo2 - Lêr um Nome e mostrar!


algoritimo "Problema_Exemplo"//aqui define-se o nome do programa

var 
//aqui definimos o nome e tipo de cada variavél
nome: Caracter

inicio 
//aqui vai as intruções e comandos
leia(nome)
escreva('O nome digitado Foi ',nome)
fimalgoritimo




Explicação dos Comandos Novos Usados:


leia: Lê algo digitado no teclado, espera o enter ser pressionado confirmando o fim da digitação e armazena como variavel pré definida.

No exemplo pede-se leia(nome) ele le a variável NOME declarada como caracter, então mesmo que você digite números como seu nome ele vai aceitar mas os números serão apenas demonstrativos pois não podem ser usados para contas pois a variável foi declarada como Caracter.


Resultados Obtidos:

O que obteve do código foi provavelmente  +- isso:

Visualg 2.5 Beta ...


Marcelo 

O Nome digitado foi Marcelo _ 



                                                                                   
htge
http://geekDevTeam.blogspot.com


Bom Basicamente você ja criou um programa, agora é esperar o próximo post e tentar variações em casa, brinque... tente fazer ler números,faça ele ler mais coisas criando mais variais e depois vá testando qualquer dúvida poste seu código nos comentários...

2. Praticando em Portugol Com VISUALG

Vamos partir para prática, exercitar seu lobo frontal!
Apartir daqui não tem mais volta, você vai entrar no mundo real da programação e concerteza se apaixonar, assim como eu, amante dessa prática.




Para não implicar seu aprendizado em nenhuma linguagem específica pois isso pode atrapalhar e você acabar não se adequando com específicas linguagens fazemos isso com VisuALG, um compilador em portugol a base de PASCAL.



Um programa que interpreta e executa algoritmos como um "programa" normal de computador. Baseado em uma linguagem parecida com o "Portugol" ensinado em cursos em todo o Brasil, possui recursos como simulação da "tela" do computador, visualização de variáveis, impressão dos fontes e outras características que auxiliam o aprendizado das técnicas de programação.

Pode Ser baixado Aqui: DOWNLOAD Direto do servidor do baixaki.com.br



1.5) Variáveis


São os nomes que utilizamos para referenciar as posições de memória. A memória de um computador pode ser entendida como um conjunto ordenado e numerado de palavras. Na maioria dos PCs que usamos diariamente a memória pode ser considerada como um conjunto ordenado e numerado de bytes (8 bits). As linguagens de programação de alto nível atribuem nomes as posições de memória que armazenam os dados a serem processados. Deste modo os programadores tem mais facilidade para construir seus algoritmos. Na linguagem a-- um nome de variável é contruído da seguinte maneira: uma letra seguida por um conjunto de letras ou algarismos. Por exemplo, os nomes seguintes são nomes de variáveis válidos:
  • i
  • valor
  • nome
  • nota1
Como nomes inválidos podemos dar os seguintes exemplos:
  • 2nota (nome começado por algarismo)
  • nome de aluno (nome com espaços em branco no meio)
Durante a apresentação da linguagem iremos fazer referências a listas de variáveis. Uma lista de variáveis é um conjunto de nomes de variáveis separados por vírgulas, por exemplo: Ex. nota1, nota2, media

Na linguagem a-- uma variável não precisa ser definida antes de ser usada em um algoritmo. A variável irá assumir, dinamicamente, o tipo do dado que estiver sendo atribuído a esta variável. Por exemplo se armazenarmos o valor 5 em uma variável ela passará a ser do tipo inteiro. Caso resolvamos trocar o valor para 3.14 a variável passará a ser real.


Por que usar estrutura Inteiro, Real...?

Imagine Você criando um programa que lê quantos anos a pessoa tem e ela coloca 14,6 anos, acabou seu programa, com essa limitação de variaveis possibilita que se bloqueie esse tipo de erro.

1.4) Tipos de Dados


Os algoritmos irão manipular dados, que normalmente são fornecidos pelos usuários, e entregar resultados para estes usuários. Uma pergunta importante neste momento é: que tipo de dados poderemos manipular? As linguagens de programação normalmente estabelecem regras precisas para definir que tipos de dados elas irão manipular. A pseudo-linguagem a-- também estabelece, ainda que informalmente, algumas regras que limitam o conjunto de dados existentes na natureza e que poderão ser manipulados pelos algoritmos.
Existem três tipos básicos de dados que a linguagem irá manipular:
  • Dados numéricos
  • Dados alfa-numéricos
  • Dados Logicos

Dados Numéricos:

Os dados numéricos que os algoritmos podem manipular são de dois tipos:
  • Dados inteiros
  • Dados reais
O conjunto dos dados inteiros pode ser definido como Z={...,-3,-2,0,1,2,...}. O conjunto dos números reais inclui o conjunto dos números inteiros, dos números fracionários e dos números irracionais. O conjunto dos números fracionários pode ser formalmente definido como Q={p/q | p,q pertencem a Z}. O conjunto dos números irracionais engloba aqueles que não podem ser representados por uma fração, por exemplo o número PI=3.141515... Os números irracionais são armazenados até um certo número de casas decimais que o computador consegue representar a partir daí as casas decimais são descartadas.
Neste ponto é importante lembrar que dois fatos importantes. Primeiro computadores trabalham com uma base diferente de 10. Computadores trabalham em base 2 e no processo de conversão entre a base 10 e a base 2 podem ocorrer problemas de perda de dígitos significativos. Por exemplo, o número real 0.6 ao ser convertido para a base dois gera uma dízima periódica. Outro fato importante é que a memória do computador é limitada e portanto o número de dígitos binários que podem ser armazenados é função deste tamanho. Deste modo o processo de conversão e desconversão entre bases pode causar perda de informação.
Os dados inteiros tem a seguinte forma: NúmeroInteiro = [+,-]algarismo{algarismo}
O sinal de + e - entre colchetes significa que um número inteiro pode ou não ter sínal, isto é o sinal é opcional. Em seguida temos um algarismo que é obrigatório. Isto é dados inteiros tem de ter pelo menos um algarismo. A seguir temos a palavra algarismo entre chaves, o que significa que um número inteiro deve ter pelo menos um algarismo e pode ser seguido por uma seqüência de algarismos.
São portanto exemplos de números inteiros:
  • +3
  • 3
  • -324
Os dados reais tem a seguinte forma: [+,-]algarismo{algarismo}"."algarismo{algarismo}. Ou seja um número real pode ou não ter sinal, em seguida um conjunto de pelo menos um algarismo, um ponto decimal e depois um conjunto de pelo menos um algarismo. É importante notar que o separador entre a parte inteira e a fracionário é o ponto e não a vírgula.
São exemplos de números reais:
  • 0.5
  • +0.5
  • -3.1415

Dados Alfa-numéricos

Dados alfa-numéricos servem para tratamento de textos e normalmente são compostos por uma seqüência de caracteres contendo letras, algarismos e caracteres de pontuação. Nos algoritmos são normalmente representados por uma seqüência de caracteres entre aspas, por exemplo:
  • "Linguagem de programação"
  • "Qual é o seu nome?"
  • "12345"

Dados Lógicos

Este tipo de dados é intensamente aplicado durante o processo de tomada de decisões que o computador frequentemente é obrigado a fazer. Em muitos textos este tipo de dados também é chamado de dados booleanos, devido a George Boole, matemático que deu ao nome à álgebra (álgebra booleana) que manipula este tipo de dados. Os dados deste tipo somente podem assumir dois valores: verdadeiro e falso. Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores. Por exemplo, considere a decisão abaixo:

Se raiz >= 0 imprima "Existe raiz" caso contrário imprima "Não existe raiz real."

Nesta instrução aparece a expressão raiz >= 0, que procura descobrir se o valor de raiz é maior que 0. Esta expressão somente pode ter como resultado os valores: verdadeiro ou falso. Nos nossos algoritmos estes valores serão representados por verdadeiro e falso. Mais adiante ficará claro como este tipo de dados será empregado nos algoritmos.
Barra Horizontal Azul

1.3.3) Pseudo Linguagem

Pseudo Linguagem

Este modo de representar algoritmos procura empregar uma linguagem que esteja o mais próximo possível de uma linguagem de programação de computadores de alto nível mas evitando de definir regras de construção gramatical muito rígidas. A idéia é usar as vantagens do emprego da linguagem natural, mas restringindo o escopo da linguagem. Normalmente estas linguagens são versões ultra reduzidas de linguagens de alto nível do tipo Pascal ou C. No próximo capítulo veremos um exemplo de uma destas pseudo-linguagens. Barra Horizontal Azul

A Pseudo Linguagem a--

Para escrever estes exemplos de algoritmos usaremos uma pseudo linguagem de programação, que chamaremos de a--. Nesta linguagem definimos um número mínimo de comandos, o suficiente para descrever os algoritmos exemplos. Os dados não tem tipo definido, como em C e PASCAL. A linguagem como o C, que é utilizado no resto do programa é baseada em funções. Todos os algoritmos são descritos por funções, sendo que a função básica, e que deve existir sempre, pois ela é sempre a primeira a ser executada é a função principal.
Um exemplo simples da forma geral de um algoritmo em a-- é o seguinte:

principal ()
início
    imprimir "Olá Mundo."
fim
O algoritmo começa com a função principal que é a função obrigatória em todos os algoritmos. Os parênteses após o nome principal são normalmente usados para delimitar a lista de argumentos, também chamados parâmetros que a função irá receber para executar a sua tarefa. Neste caso a função não está recebendo nenhum parâmetro. Esta algoritmo executa um único comando que imprime o texto "Alo mundo" em um dispositivo qualquer de saída de dados.

1.3.2) Fluxogramas

Fluxogramas

Esta forma de representação de algoritmos emprega várias formas geométricas para descrever cada uma das possíveis açoes durante a execução do algoritmos. Existem algumas formas geométricas que são empregadas normalmente e que estão mostradas na Figura abaixo. Cada uma destas formas se aplica a uma determinada ação como está indicado. Existem outras formas que podem ser aplicadas, no entanto nesta apostila estas formas serão suficientes para os exemplos que serão mostrados.
Formas utilizadas em Fluxogramas
Como primeiro exemplo de um algoritmo descrito por meio de fluxogramas vamos considerar o exemplo do algoritmo para decidir o que fazer em um dia de domingo. A Figura a seguir mostra o fluxograma equivalente à descrição feita por meio da linguagem natural.

Fluxograma para decidir o que fazer em um dia de domingo.
Outro exemplo de um algoritmo descrito por meio de fluxogramas é o problema de calcular a solução da equação de primeiro grau
ax+b=0
que vale
x=-(b/a)
se a for diferente de zero. A Figura abaixo mostra um possível algoritmo para resolver este problema.

Fluxograma para equação do primeiro grau 
 
 
 
 
 
Fluxogramas Engraçados Para descontrair...
 
Clique para Aumentar
 

1.3.1) Linguagem Natural

Linguagem Natural

Como ilustração de algoritmo em linguagem natural vamos considerar a receita abaixo. Por economia de texto e facilidade a receita não mostra as quantidades dos ingredientes (as entradas). Alguns mais maldosos dizem que o cozinheiro não quis divulgar o seu segredo.
  • Filé de peixe com molho branco.
    • {preparo dos peixes}
      • Lave os filés e tempere com o suco dos limões, sal, pimenta e salsinha picada. Deixe por 1/2 hora neste tempero. Enxugue e passe cada filé na farinha de trigo. Depois passe pelos ovos batidos e frite na manteiga até ficarem dourados dos dois lados.
    • {preparo do molho branco}
      • Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente.
    • {juntando os dois}
      • Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés.
  • Fim da receita do filé de peixe com molho branco.
Observe que a receita foi subdividida em partes: preparo dos peixes, preparo do molho branco e finalmente juntar as duas partes. Esta é uma técnica comum na resolução de problemas: dividir para conquistar. Vamos considerar agora uma outra receita que tenha molho branco como parte, para ilustrar uma outra técnica comum da criação e descrição de algoritmos. A próxima receita é esta:
  • Alface com molho branco.
    • {preparo do molho branco}
      • Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente.
    • {preparo da alface}
      • Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou até a alface ficar tenra, ou o líquido da panela secar.
    • {juntando os dois}
      • Junte ao molho branco e ao suco de limão. Coloque numa travessa e enfeite em volta com pão torrado cortado em triângulos.
  • Fim da receita do alface com molho branco
Imagine que os pratos abaixo fazem parte de um livro de receitas. Observe atentamente as receitas. Perceba que os dois pratos usam molho branco e que, as duas receitas, ensinam ao leitor como preparar molho branco. Imagine que este livro de receitas tem 20 outros pratos ao molho branco. É fácil perceber que este livro terá numerosas páginas uma vez que, provavelmente, outras receitas básicas (molho de tomate, molho de mostarda, etc.) estarão repetidas em vários pontos do livro.
Observe agora uma nova maneira de descrever estas duas receitas:
  • Molho branco
    • Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente.
  • Fim da receita do molho branco
  • Filé de peixe com molho branco
    • {preparo dos peixes}
      • Lave os filés e tempere com o suco dos limões, sal, pimenta e salsinha picada. Deixe por 1/2 hora neste tempero. Enxugue e passe cada filé na farinha de trigo. Depois passe pelos ovos batidos e frite na manteiga até ficarem dourados dos dois lados.
    • {preparo do molho branco}
      • Prepare a receita básica de molho branco.
    • {juntando os dois}
      • Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés.
  • Fim da receita do Filé de peixe com molho branco.
  • Alface com molho branco
    • {preparo do molho branco}
      • Prepare o molho branco segundo a receita básica.
    • {preparo da alface}
      • Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou até a alface ficar tenra, ou o líquido da panela secar.
    • {juntando os dois}
      • Junte ao molho branco e ao suco de limão. Coloque numa travessa e enfeite em volta com pão torrado cortado em triângulos.
  • Fim da receita do Alface com molho branco.
Observe a economia de linhas de texto que foi possível devido a separação da receita de molho branco das demais. Se o mesmo procedimento for seguido para as demais receitas básicas, é de se esperar que o livro fique mais "fininho" do que antes.
Você pode argumentar que, no método anterior, era mais rápido seguir uma receita. Agora, ao preparar o peixe ao molho branco, por exemplo, você tem de interromper a leitura, marcar a página onde você estava, abrir na página da receita de molho branco, aprender a prepará-lo e, então, retornar à receita do peixe. Você tem razão, mas, além da economia de papel, existem outras vantagens em separar a receita do molho branco. Imagine, por exemplo, que amanhã você descubra que o molho branco fica uma delícia se levar uma pitada de alho. Basta modificar a receita de molho branco, que aparece em um único lugar no livro, e todas as receitas "ao molho branco" estarão automaticamente modificadas. No método anterior, seria preciso modificar todas as receitas que usam molho branco, com o risco considerável de esquecermos de modificar alguma delas.
Observe ainda a variação abaixo da receita do peixe:
  • Filé de peixe com molho branco
    • {preparo dos peixes}
      • Lave os filés e tempere com o suco dos limões, sal, pimenta e salsinha picada. Deixe por 1/2 hora neste tempero. Enxugue e passe cada filé na farinha de trigo. Depois passe pelos ovos batidos e frite na manteiga até ficarem dourados dos dois lados.
    • {preparo do molho branco}
      • Compre molho branco no supermercado
    • {juntando os dois}
      • Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés.
  • Fim da receita do filé de peixe com molho branco.
Você prestou atenção? Ao invés de ensinar a preparar molho branco, a receita instrui você a comprá-lo pronto, no supermercado. Ou, em outras palavras, é possível usar no preparo do seu prato, ingredientes já prontos, preparados por outra pessoa, que você talvez nem conheça. Além disso, se você não é um cozinheiro experiente, o molho à venda no supermercado já foi suficientemente testado e é, provavelmente, gostoso. Embora, nem todos vão concordar com tal infâmia! Você já tem problemas suficientes tentando preparar um bom peixe. Talvez seja melhor usar o molho do supermercado e não ter de se preocupar com essa parte do problema. O uso de algoritmos criados por outros é muito comum na informática e pode reduzir consideravelmente o tempo de criação de um sistema.
Toda a discussão acima tem uma forte analogia com o estudo de algoritmos e técnicas de programação. Isto ficará mais claro para você mais tarde, quando estudarmos procedimentos e funções.
Para ilustrar mais um conceito importante de algoritmos vamos analisar mais um exemplo, considerando o problema de calcular a área de uma mesa retangular. Este cálculo pode ser efetuado se seguirmos os seguintes passos.
  • Cálculo da área de uma mesa.
    • Medir a largura da mesa e anotar o resultado.
    • Medir o comprimento da mesa e anotar o resultado.
    • Multiplicar o comprimento pela largura e anotar o resultado.
    • O valor da área da mesa é o resultado anotado no passo anterior.
  • Fim do cálculo da área da mesa.
Vamos supor agora que dispomos de uma mesa e de uma toalha cobrindo esta mesa e gostaríamos de saber as áreas da toalha e da mesa. O algoritmo pode ser escrito da seguinte maneira.
  • Cálculo das áreas de uma mesa e de uma toalha.
    • Cálculo da área de uma mesa.
      • Medir a largura da mesa e anotar o resultado.
      • Medir o comprimento da mesa e anotar o resultado.
      • Multiplicar o comprimento pela largura e anotar o resultado.
      • O valor da área da mesa é o resultado anotado no passo anterior.
    • Fim do cálculo da área da mesa.
    • Cálculo da área da toalha.
      • Medir a largura da toalha e anotar o resultado.
      • Medir o comprimento da mesa e anotar o resultado.
      • Multiplicar o comprimento pela largura e anotar o resultado.
      • O valor da área da toalha é o resultado anotado passo anterior.
    • Fim do cálculo da área da toalha.
  • Fim do cálculo das áreas da mesa e da toalha.
Observe que os algoritmos para cálculo da área da mesa e da toalha são parecidos, trazendo a idéia que existe um algoritmo mais geral que é o de cálculo da área de um objeto retangular. Este algoritmo mais geral pode ser então aplicado tanto à mesa como à toalha.
Este algoritmo mais geral poderia ser descrito da seguinte maneira:
  • Cálculo da área de um objeto retangular ou quadrado.
    • Medir a largura do objeto e anotar o resultado.
    • Medir o comprimento do objeto e anotar o resultado
    • Multiplicar o comprimento pela largura e anotar o resultado.
    • O valor da área e o resultado anotado no passo anterior.
  • Fim do cálculo da área de um objeto retangular ou quadrado.
O algoritmo para cálculo da área da mesa e da toalha poderia ser reescrito de forma mais compacta com as seguintes instruções:
  • Calcular a área da mesa usando o algoritmo acima.
  • Calcular a área da toalha usando o mesmo algoritmo.
Observe que neste caso um mesmo algoritmo pode ser aplicado a diferentes objetos, reduzindo o número de algoritmos a serem definidos.
A maioria dos algoritmos contém decisões, por exemplo, para atravessar uma rua preciso verificar se o sinal de pedestres está verde e verificar se nenhum carro está avançando o sinal, somente após decidir se estes fatos se confirmaram poderei atravessar a rua.
Para considerar um algoritmo que inclua decisões vamos estudar um algoritmo que nos ajude a decidir o que fazer em um domingo. Um possível algoritmo poderia ser o seguinte:
  • Algoritmo de domingo.
    • Acordar.
    • Tomar o café.
    • Se estiver sol vou à praia senão leio o jornal.
    • Almoçar.
    • Ir ao cinema.
    • Fazer uma refeição.
    • Ir dormir.
  • Final do domingo.
A possibilidade de tomada de decisões é a característica mais importante de qualquer linguagem de programação. Ela permite que ao computador simular aproximadamente uma característica humana que é a escolha de opções. Sem esta característica o computador seria pouco mais do que uma veloz máquina de calcular.
Vamos agora considerar um exemplo um pouco mais matemático e estudar o algoritmo para calcular as raízes de uma equação do segundo grau da forma
ax2+bx+c=0
As raízes podem ser calculadas pelas fórmulas

x1=[-b+(b2-4ac)(1/2)]/(2a)

x2=[-b-(b2-4ac)(1/2)]/(2a)
Aparentemente o algoritmo se reduziria ao cálculo da fórmula, no entanto ao detalharmos as ações devemos prever tudo que pode acontecer durante o cálculo desta fórmula. Por exemplo o que fazer se o valor do coeficiente a for igual a zero? Um possível algoritmo é o seguinte:
  • Algoritmo para cálculo de uma equação do segundo grau.
    • Obter os coeficientes a, b e c
    • Se o coeficiente a for igual a zero informar que esta não é uma equação do segundo grau e terminar o algoritmo.
    • Caso contrário continue e faça
      • Calcular delta=b2-4ac
      • Se o valor de delta for negativo informar que a equação não tem raizes reais e terminar o algoritmo.
      • Caso contrário continue e faça
        • Calcular a raiz quadrada de delta e guardar o resultado como raiz
        • Calcular x1=(-b + raiz)/(2a)
        • Calcular x2=(-b - raiz)/(2a)
        • Fornecer como resultado x1 e x2
        • Terminar o algoritmo.
  • Fim do algoritmo para cálculo de uma equação do segundo grau.
Neste algoritmo em diversos pontos tivemos de tomar decisões e indicar o que fazer em cada uma das possibilidades, mesmo que seja mostrar que não podemos continuar o algoritmo. Toda vez que decisões tiverem de ser tomadas devemos incluir todas as possibilidades para o evento que estamos considerando.
Este é um dos possíveis algoritmos por diversas razões. Por exemplo, poderíamos incluir no algoritmo o cálculo das raízes imaginárias ou no caso do coeficiente a ser igual a zero calcular como se fosse uma equação do primeiro grau.

1.3) Representação Gráfica

Existem várias formas de representação gráfica e visual de algorítimos. As Mais Usadas São:

Linguagem Natural:
Os algoritmos são expressos diretamente em linguagem natural, como nos exemplos anteriores.
Fluxograma Convencional:
Esta é um representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações e  decisões que devem ser executadas para resolver o problema.
Pseudo-linguagem:
Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos.É mais usada em aprendizado do que em prática geral, começa usando linguagem nativa da pessoa e depois passa para o inglês e uma estrutura de linguagem mesmo(Em Portugol ou Português Estruturado).
Não existe consenso entre os especialistas sobre qual seria a melhor maneira de representar um algoritmo. Atualmente a maneira mais comum de representar-se algoritmos é através de uma pseudo-linguagem ou pseudo-código. Esta forma de representação tem a vantagem de fazer com que o algoritmo seja escrito de uma forma que está próxima de uma linguagem de programação de computadores. Algoritmo de encontrar a menor temperatura dentro de registros de temperaturas mostrada na seção anterior usou linguagem natural para representar o algoritmo.

1.2) Para Que Serve um Algorítimo?

O Algorítimo é a Idéia, o Rascunho do Programa.
Pode-se Interpretar que:

Algorítmo + Linguagem de Programação = PROGRAMA

O mesmo Algoritimo serve para todas linguagens de programação.


Serve principalmente para sairmos do problema e chagarmos ao PROGRAMA.




Qualidades de um Bom Algoritmo:


1) Definição Perfeita: Deve descrever exatamente quais são instruções que devem ser executadas e em que sequência.Deve ser colocado o maior número possivel de informações e definiçoẽs.

2) Ausência de Ambiguidade: Não se deve deixar dúvida alguma sobre o que deve ser feito. A Ambiguidade acerca do que deve ser feito também pode levar a uma interpretação errada.

3) Eficácia: Consegue Resolver o Problema de toda forma possivel que ele se apresenta? Tudo que for alterado ainda assim irá resolver o mesmo?

4) Eficiência: Resolver Sempre com mínimo de recursos possíveis antes da perda de qualidade. Para computação não adianta de nada saber o algoritmo que calcula o milionésimo número de Pi se você o fez para um computador que ainda não existe. Isso é só um exemplo, o que implica é a quantidade de Processamento necessitará seu Algoritmo e sempre que o criar crie da menor maneira possível e pense em mais umas 2 formas de resolve-lo para comparação.



Um exemplo rápido de simplificação:


Você tem que resolver em algum algoritimo uma conta assim;



N1 +  ( 12 * 10 ) / N2 + (N7 * 32) / (45+45)

Só um exemplo, percebe=se que N1,N2 e N7 seram respectivamente incluidos pelo usuário no programa então são váriaveis, você não tem como prever o que resultara de uma variavém com outra ou com qualquer número a menos que seja um campo limitado de números...
Simplificando pode-se obter: 

N1 + 120 / N2 + (N7 * 32) / 90

Perceba que foi resolvido 12*10 para o processador, ele não precisa mais calcular isso então você simplificou para ele e ele necessitara de menos recursos.

1.1) Resumidamente

Basicamente um Algorítimo é uma sequência de passos simples para resolução de um problema. É uma receita que qualquer um entenda, ...

Exemplo Simples:

Algoritimo para lavar Cabeça:

1:INÍCIO
2:MOLHE O CABELO
3:COLOQUE SHAMPOO
4:ESFREGUE
5:ENXAGUE
6:FIM

                Análise :

                                   Processo Simples do dia-à-dia
                                   Início e Fim Claramente Definidos
                                   Passo-à-passo bem definido.
     

Mas há imperfeições:
                    Não Especifica quanto de Shampoo, não especifica como molhar, como lavar, quanto tempo...

Vamos Melhorar isso:


1:INÍCIO
2:MOLHE O CABELO
3:REPITA 2 VEZES:
   3.1:COLOQUE QUANTIDADE DE 1 TAMPINHA DE  SHAMPOO
   3.2:ESFREGUE POR 1 MINUTO
   3.3:ENXAGUE
6:FIM

O que é Programação?

O que é Programação de Computadores?

Programação é o processo de escrita, teste e manutenção de um programa de computador. O programa é escrito em uma linguagem de programação, embora seja possível, com alguma dificuldade, escrevê-lo directamente em linguagem de máquina. Diferentes partes de um programa podem ser escritas em diferentes linguagens

Programação é o processo de escrita, teste e manutenção de um programa de computador. O programa é escrito em uma linguagem de programação, embora seja possível, com alguma dificuldade, escrevê-lo directamente em linguagem de máquina. Diferentes partes de um programa podem ser escritas em diferentes linguagens.

Diferentes linguagens de programação  funcionam de diferentes modos. Por esse motivo, os programadores podem criar programas  muito diferentes para diferentes linguagens; muito embora, teoricamente, a maioria das linguagens possa ser usada para criar qualquer programa. Para mais informações sobre estes métodos, veja Linguagem de programação.

Software é um nome colectivo para programas de computadores e dados.

Há várias décadas se debate se a programação é mais semelhante a uma arte (Donald Knuth), a uma ciência, à matemática (Edsger Dijkstra), à engenharia (David Parnas), ou se é um campo completamente novo.

Programas ou algoritmos?


Um algoritmo é uma sequência de passos para realizar um tarefa ou resolver um problema. Em nosso dia a dia utilizamos algoritmos para realizar nossas atividades, definindo a sequência de atividades que devemos fazer para atingir um objetivo.

Um algoritmo é, num certo sentido, um programa abstrato — dizendo de outra forma, um programa é um algoritmo concretizado. No entanto, os programas são, à excepção dos menores, visualizados mais facilmente como uma colecção de algoritmos menores combinados de um modo único — da mesma forma que uma casa é construída a partir de componentes.

Dessa forma, um algoritmo é uma descrição de como um computador pode ser levado a executar uma operação simples e específica, como, por exemplo, uma ordenação. Um programa, por outro lado, é uma entidade que na verdade implementa uma ou mais operações de forma que seja útil para as pessoas.
Veja mais no post sobre algorítimos...

Engenharia de software


A desenvolvimento de um programa de computador consiste de cinco passos principais:

   1. Reconhecer a necessidade de um programa para resolver um problema.
   2. Planificar o programa e seleccionar as ferramentas necessárias para resolver o problema.
   3. Escrever o programa na linguagem de programação escolhida.
   4. Compilação: tradução do código fonte legível pelo homem em código executável pela máquina, o que é feito através de compiladores e outras ferramentas.
   5. Testar o programa para ter a certeza de que funciona; se não, regressar ao passo 3.

Estes cinco passos são colectivamente conhecidos como engenharia de software. A programação põe ênfase nos passos 2, 3 e 4. A codificação põe ênfase no passo 3. O termo coder, por vezes usado como sinônimo para programador, pode tornar-se aviltante porque ignora as capacidades necessárias para lidar com os outros quatro passos.

História


Hero de Alexandria no século primeiro inventou teatros automatizados que usavam programação análoga para controlar os fantoches, portas, luzes e efeitos de som.

A mais antiga programadora de computadores que se conhece é Ada Lovelace, filha de Anabella e de Lord Byron (o poeta). Anabella transmitiu a Ada o seu amor à matemática, a qual, depois de conhecer Charles Babbage, traduziu e expandiu uma descrição da sua máquina analítica. Muito embora Babbage nunca tenha completado a construção de nenhuma das suas máquinas, o trabalho que ele e Ada desenvolveram sobre elas, garantiu a Ada o título de primeira programadora de computadores do mundo (veja as notas de Ada Byron sobre a máquina analítica. A linguagem de programação Ada recebeu o seu nome.

Um dos primeiros programadores que se tem notícia de ter completado todos os passos para a computação sem auxílio, incluindo a compilação e o teste, é Wallace J. Eckert. O trabalho deste homem antecede a ascensão das linguagens de computador, porque ele usou a linguagem da matemática para solucionar problemas astronômicos. No entanto, todos os ingredientes estavam lá: ele trabalhou um laboratório de computação para a Universidade de Columbia com equipamentos fornecidos pela IBM, completes com uma divisão de serviço de atendimento ao cliente, e consultores de engenharia para propósitos especiais, na cidade de Nova York, na década de 1930, usando cartões perfurados para armazenar os resultados intermediários de seus cálculos, e então formatando os cartões perfurados para controlar a impressão das respostas, igual ao trabalho para os censos décadas antes. Tinha técnicas de debug tais como códigos de cores, bases cruzadas, verificação e duplicação. Uma diferença entre Eckert e os programadores dos dias de hoje é que o exemplo do seu trabalho influenciou o projeto Manhattan. Seu trabalho foi reconhecido por astrônomos do Observatório da Universidade de Yale, Observatório da Universidade de Princeton, Observatório da Marinha dos EUA, Observatório da Faculdade Harvard, Observatório dos estudantes da Universidade da Califórnia, Observatório Ladd da Universidade de Brown e Observatório Sproul da Faculdade de Swarthmore.

Alan Turing é frequentemente encarado como o pai da ciência de computadores e, por afinidade, da programação. Ele foi responsável por ajudar na elaboração e programação de um computador destinado a quebrar o código alemão ENIGMA durante a Segunda Guerra Mundial — ver Máquina Enigma.

Lista de linguagens


Existem várias linguagens de programação. As mais populares são: Java, C, C++, Visual Basic, PHP, Perl, Python, C#, JavaScript, Ruby, Delphi , D e ActionScript.

O que é Algorítimo?

O que é Algorítimo?
Algoritmo é uma sequência de passos simples, bem estruturados e não ambíguos,que, quando executados em ordem correta, fornece resolução de algum problema.

Como Assim?

Bom, eu lembro de ter lido que em tempos antes de Cristo, um homem propôs que poderíamos executar diversas tarefas da seguinte maneira:

Tendo algumas pessoas, dizemos a cada uma uma tarefa muito simples, e cada uma executa sua tarefa, em ordem. Nenhuma sabe o processo todo. Mas espera-se que no fim, o processo inteiro se complete!

Um exemplo:

Cada número representa uma pessoa.

 1: escreve G em uma folha e entrega a 2
 2: escreve L em uma folha, coloca no fim das folhas, e as entrega a 3
 3: escreve O em uma folha, coloca no topo das folhas, e as entrega a 4
 4: escreve A em uma folha, coloca no fim das folhas, e as entrega a 5
 5: inverte a ordem das folhas
Se você observar bem, leremos "ALGO" no final, folha por folha.
Apesar de cada passo parecer desconexo, no fim obteve-se um resultado!

Essa lógica por trás da sequência de passos que é chamada de lógica de programação. Claro que geralmente o que queremos obter é algo mais complexo, e os tipos de passos que dispomos são mais bem definidos e mais simples.


Interessante!

Agora verifique um exemplo com um laço, ou loop:
 
Há algumas pedras, de diferentes tamanhos

 1: se há pedras, escolhe a menor e dá para 2
 2: coloca a pedra no fim de uma fila, e pede a 1 outra pedra

Perceba que nesse caso, 1 vai escolher primeiro a menor pedra de todas, e 2 vai colocá-la em primeiro lugar na fila.
Em seguida, 1 escolhe a segunda menor pedra (para 1, é a menor pedra que tinha, mas no total, ela é a segunda menor, afinal a menor já foi), e 2 a coloca atrás da primeira pedra, na fila.
No fim, teremos que as pedras estarão em ordem crescente!
Este foi um exemplo de algoritmo de ordenação.

E no computador?

Utilizamos as linguagens de programação para transcrever o passo-a-passo que o computador deve executar, e é isso que ocorre.
Note que quando compilamos um programa, é gerado um outro código, ainda mais simples, porque o computador compreende e é capaz de executar apenas uma pequena quantidade de comandos muito simples.
No entanto, unidos, esses comando muito simples se tornam algo maior e que faz sentido!

Algo importante a notar é que os exemplos dados aqui estão em alto nível, ou seja, há comandos que são relativamente complexos, e que no computador precisaríamos separá-los em instruções ainda menores e mais simples. Mas para nós, humanos, não é difícil compreender esses passos em alto nível, assim fica mais fácil escrevê-los desta forma.

Perceba também que apesar de se falar em algoritmos de computador, um algoritmo não pressupõe um computador! (É só lembrar do homem antes de Cristo, já criando a lógica de programação! XD)

Dois algoritmos podem ter o mesmo resultado?

Sim!
Pense no primeiro exemplo dado aqui!
Um meio mais fácil de formar a palavra "ALGO" seria cada pessoa escrever uma letra, na ordem, não?
Pois bem, faça isso e obterá o exato mesmo resultado que o outro algoritmo!







----------------------------------------------

Limpe seu certamente Velho PS2 (Old)


Seu PS2 Esta certamente "velho", no sentido de sujo se você nunca limpou ele, isso pode e vai prejudicar o hardware por aquecimento diminuindo vida útil e aceleração do hardware fazendo também com que tranque muitos jogos.
Ai vai um Completíssimo tutorial

Material:
- Chave Philips média.
- Chave Philips pequena.
- Pincel
- Cotonete ou algodão
- Toalha (ou lençol, camiseta.....)

Opcional:
- Lupa e lanterna

Imagem

Abrindo:

- Pessoal, leiam todo esse tutorial antes de começar a abrir seu PS2, pois existem cuidados a serem tomados para cada modelo.

- Você pode ter achado estranho ter mencionado uma "toalha" junto com o material, mais isso é para evitar riscos no nosso querido amigo.

- Se sua casa tiver carpete, cuidado com a eletricidade estática, procure um outro lugar com cerâmica, e antes de mexer nele encoste suas mãos em algum local metálico afins de retirar sua estática.

- Forre o local onde irá ser executado o serviço.

- Se o seu PLAY tem HD, é hora de retirá-lo.

Imagem

- Coloque seu PS2 de cabeça para baixo e retire as borrachas (pezinhos) e os acabamentos de plástico que cobrem os parafusos, são 8 parafusos no total.

Imagem

- Retire os parafusos com a chave Philips média, e guarde os parafusos de modo que eles sejam colocados no mesmo lugar de onde foram retirados para diminuir o risco de espanar, afinal é plástico.

-Nos modelos 39001 e seus antecessores (39001, 30001...) , existe uma fita que liga os botões dianteiros à placa principal, e deve-se ter muito cuidado com ela.

-Ao abrir seu PS2, levante a tampa com cuidado de deixe-a ao lado como na foto:

Imagem

Imagem

Imagem

- Já nos modelos 50000 em diante, não temos mais essa fita, os botões ficam fixos na parte de baixo junto com a placa principal, ficando a tampa livre:

- Olhem a diferença entre os modelos, primeiro o 39001 e depois o 5000x.

Imagem

Imagem

- Novamente os dois modelos o da frente é o 39001.

Imagem

- Procure limpar a parte de fora primeiro, deixando por ultimo o local onde fica o leitor.

- Com o pincel vamos a faxina !

Imagem

- Para retirar o cooler solte o(s) parafusos

Imagem

- Puxe a entrada de energia para cima

Imagem

Imagem

- Depois o suporte do cooler

Imagem

Imagem

- Muito cuidado com esses fiozinhos

Imagem

- Para soltar o cooler é só puxar para cima como foi com a entrada de energia.

Imagem

Imagem

- Olha o estado disso!!! Pincel neles

Imagem

- Antes do pincel

Imagem

- Depois do pincel

Imagem

- Solte também a entrada dos controles que tem 2 parafusos

Imagem

Imagem

Imagem

- Agora vamos soltar a parte de baixo, segure na abertura do hd com bastante cuidado, e se possível peça ajuda para alguém segurar a entrada do controle e o cooler.

- Depois de soltar, aproveite e vire ele

Imagem

Imagem

Imagem

- Olha que coisa suja, TEM ATÉ TEIA DE ARANHA HAHAHA!!!

Imagem

- Com o PS2 já virado, vamos tirar a fonte, temos que soltar esses parafusos

Imagem

Imagem

- Há sim, no modelo 50000 a fonte é assim, inverso do 39001, mas tem os mesmos parafusos

Imagem

- Pincel geral

Imagem

- Se um dia seu PS2 parar por completo, pode ser esse fusível aqui

Imagem

- Essa parte é solta, só puxar

Imagem

A T E N Ç Ã O

- Este estágio é bem complicado e deve ser evitado se o PS2 não estiver muito sujo, pois é bem complicado, e qualquer descuido pode ter um fim não agradável.

- Solte os parafusos indicados, e não levante seu ps2 neste momento.

Imagem

- Solte também a essa trava do leitor

Imagem

- Agora com cuidado, retire a proteção da placa mãe

Imagem

Imagem

- Eu não recomendo nada por aqui, só mais um pincel bem de leve

Imagem

- Depois monte seu PS2 novamente,e vamos ao leitor

- O modelo 39001 tem 4 parafusos

Imagem

- O 50000 tem 2 parafusos e duas travas

Imagem

- Solte as travas assim

Imagem

Imagem

Imagem

- Pincel na tampa, e dos lados do leitor (nunca diretamente encima dele)

Imagem

Imagem

- Olha o leitor de 300,00 pilas ai

Imagem

- Mais de perto para ver a sujeira

Imagem

- É..... na foto não deu para ver, mais tava sujinho, geral nele com o cotonete, utilize a lupa e a lanterna para ver melhor.

Imagem

OBSERVAÇÕES IMPORTANTES:
- Depois que montar o PS2, verifique se o Cooler está funcionando, porque um amigo depois de montar, não reparou que esse fiozinho estava travando o cooler, e quase perdeu a o PS2 dele..., então cuidado pessoal.

- Nos aparelhos até 39001, cuidar com a fita do reset na montagem, pois ela pode ficar bem encima do buraco onde passa o parafuso para fechar o ps2. Isso pode ser resolvido com o uso de uma fita prendendo ele em cima da tampa do leitor, que alias vem de fábrica com uma fita adesiva ali.

Imagem

- Ai está, 2 PS2 respirando melhor e pronto para mais uns meses de jogatina.

Imagem


Valeu ai pessoal, qualquer duvida postem ai.