sexta-feira, 24 de maio de 2013

Método Iterativo de Gauss-Jacobi

Atravéz de uma aproximação inicial, o Método de Gauss-Jacobi consiste em obter uma seqüência, por meio da relação recursiva.
O processo iterativo utiliza somente estimativas da iteração anterior.
O método gera uma seqüência convergente para a solução do sistema dado, independentemente da escolha da aproximação inicial.

Fórmula Matricial do Método Gauss-Jacobi

Decompõe-se a matriz de coeficientes A em:
A = L + D + U
Onde:
L – Matriz Triangular Inferior
D – Matriz Diagonal
U – Matriz Triangular Superior


Abaixo tem um algoritmo em C para o calculo deste método linear:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>

#define tam 3

main()
{
    int t, j, i, k; 
    bool pare=false;
    float a[tam][tam], b[tam], x[tam], x0[tam], x2[tam], e, norma=0, soma=0,soma2=0;
   
    // inserindo os elementos na matriz A
     printf("\nInserindo elementos da matriz A:");
     for(i=0; i<tam; i++)
     {
              for(j=0; j<tam; j++)
              {
                       printf("\nInsira o elemento a[%i,%i]:",i+1,j+1);
                       scanf("%f",&a[i][j]);
              }
     }
    
     printf("\n");
    
     // inserindo os elementos da matriz dos termos independentes B
     printf("Inserindo os termos independentes B:");
     for(i=0; i<tam; i++)
     {
              printf("\nInsira o elemento b[%i]:",i+1);
              scanf("%f",&b[i]);
     }
    
    // inserindo os elementos do vetor x0 inicial
    printf("Entrando com os valores do vetor x0 (inicial)\n");
    for(i=0; i<tam; i++)
    {
             printf("x0[%i]= ",i+1);
             scanf("%f",&x0[i]);
    }  

    //imprimindo a matriz
     printf("\nMatriz A:\n");
      for(i=0; i<tam; i++)
      {
             for (j=0;j<tam;j++)
             {
                 printf ("%.0f",a[i][j]);
                 if(j==2)
                 {
                          printf("\n");
                 }
                 else
                 {
                      printf("\t");
                 }
             }
    } 
    printf("\n\n");

   //imprimindo a matriz de termos
    printf("\nMatriz B:\n");
    for (j=0;j<tam;j++)
    {
                 printf ("%.0f",b[j]);
                 if(j==2)
                 {
                      printf("\n");
                 }
                 else
                 {
                      printf("\t");
                 }
     }      
     printf("\n\n");
   
    //imprimindo o vertor x
    printf("\nMatriz X:\n");
    for (j=0;j<tam;j++)
    {
                 printf ("%.0f",x0[j]);
                 if(j==2)
                 {
                      printf("\n");
                 }
                 else
                 {
                      printf("\t");
                 }
     }      
     printf("\n\n");

    printf("Entre com a precisao: ");
    scanf("%f", &e);

    while (!(pare))
    {
       
        for (i=0; i<tam; i++)
        {
            //calculando o valor do primeiro somatório.
            for (j=0; j<i; j++ )
            {
                soma=soma+a[i][j]*x0[j];
            }           
            //calculando o valor do somatório.
            for (j=i+1; j<tam; j++ )
            {           
                soma2 = soma2 + a[i][j]*x0[j];
            }
            x[i]=(b[i]-soma-soma2)/a[i][i];
            printf("x%i=%f\n",i,x[i]);
            soma=0;
            soma2=0;

        }

        for (t=0; t<tam; t++)
        {
            x2[t] = x[t]-x0[t];
        }
        norma = (sqrt((x2[0]*x2[0])+(x2[1]*x2[1])+(x2[2]*x2[2])))/sqrt((x[0]*x[0])+(x[1]*x[1])+(x[2]*x[2]));
        printf ("norma = %f", norma);
        printf("\nPressione p/ continuar\n\n");
        getch();

        if (norma <= e)
        {           
            pare = true;
        }
        else
        {
            for (t=0; t<tam; t++)
            {           
                x0[t] = x[t];
            }           
            k++;
        }

    }
getch();
}

sábado, 11 de maio de 2013

Ler números de trás para frente em C

          Esse código foi implementado para ler 20 numeros float e imprimi-los de trás para frente, de forma bem simples, utilizando um vetor de 20 números. No primeiro "for" ele lê os numeros e armazena no vetor usando o contador de forma positiva com "i++", já no segundo "for" ele lê e imprime o vetor de trás pra frente com o "i--".

#include<stdio.h> //inclui bilbiotecas
#include<conio.h> //definição de constantes, de novos de tipos, de novas estruturas

main()
{
    float num[20];
    int i;
    for (i=0; i<20; i++)
    {
        printf("Entre com o numero %i:",i+1);
        scanf("%f",&num[i]);
    }
    for (i=19; i>=0; i--)
    {
        printf("%.2f\n",num[i]);
      
    }
    getch();

}

domingo, 5 de maio de 2013

Fatorial em C

      Fatorial é um código bem simples, mas cada um tem seu modo de fazer. Mas mestraremos um com função, no bloco main recebe o número e passa para a função fatorial e através do bloco for calcula-se o fatorial, retorna-se o valor encontrado e imprime-se na tela.

Vamos ao código:

#include <stdio.h>
#include <conio.h>

int fatorial(int num) // recebe o nuúmero
{
    int fat=1,controle;
//calcula o fatorial
    for(controle=1;controle<=num;controle++)
    {
        fat=fat*controle;
    }
    return fat;
}   
main()
{
    int x;
    printf("Informe o numero: ");
    scanf("%i",&x);
    printf("O fatorial de %i e: %i",x,fatorial(x)); //passa o numero por parâmetro e depois recebe e imprime
    getch();
}

Fibonacci em C

      Esse código mostra uma sequencia de Fibonacci, onde você escolhe a quantidade de termos a ser mostrado em tela. Neste código é usado função. No bloco main é lido o número e passado para a função, onde é calculado por meio do bloco de repetição While até o valor especificado pelo usuário.

#include <stdio.h>
#include <conio.h>
int fibonacci(int num)//recebe o número
{
   int soma, a=0, b=1,i=1;
    printf("%i  ", a);
    printf("%i  ", b);            
    while (i<=num-2) //Calcula a seu^qncia de fibonacci
    {     
      soma=a+b;
      a=b;
      b=soma;
      i++;
      printf("%i  ",soma);
     }
}
main()
{
   int n;
   printf(" Digite a quantidade de termos: ");
   scanf("%d", &n);
   printf("\nA sequencia e: \n");
   fibonacci(n); //passa o número por parâmetro
   getch();
}

sábado, 4 de maio de 2013

Calculadora em php integrado no html

      De acordo com o post anterior estou mostrando uma calculadora simples utilizando código em php integrado ao formulário Html, como já foi dito antes não é necessário codificar separadamente, mas isso não quer dizer que se temos esse costume está errado, além de ficar mais claro para os que estão começando neste belo mundo que é a programação.
      Neste formulário eu utilizei rádio button para indicar a operação, passando no name=operacao e o value de acordo com a operação (somar, subtrair, multiplicar ou dividir), porque quando o código PHP receber os valores ele vai comparar o name para a variável e value para saber qual o valor foi passado para que seja efetuado a operação da calculadora.

Vamos ao código:

<html>
<head>
<title>Formulario</title>
</head>

<body>
<form action="revisao9.php" method="get">
Entre com um numero: <input type="text" name=" numero1" id="numero1"> <br />
Entre com outro numero: <input type="text" name=" numero2" id="numero2"> <br />
//Usei rádio button, para a escolha da operação.
Operacao: &nbsp; <input type="radio" name="operacao" id="operacao" value="somar" checked="checked"> somar &nbsp;&nbsp;     <input type="radio" name="operacao" id="operacao" value="subtrair"> Subtrair &nbsp;&nbsp;     <input type="radio" name="operacao" id="operacao" value="dividir"> Dividir &nbsp;&nbsp;     <input type="radio" name="operacao" id="operacao" value="multiplicar"> multiplicar <br />
<input type="submit" value="Enviar">
</form>

<?php
    include "revisao9func.php";
    if(isset($_GET['numero1']) && isset($_GET['numero2']) && isset($_GET['operacao']))
    {
        if ($_GET['operacao'] == "somar")
        {
            echo somar ($_GET['numero1'],$_GET['numero2']);
        }
        if ($_GET['operacao'] == 'subtrair')
        {
            echo subtrair ($_GET['numero1'],$_GET['numero2']);
        }
        if ($_GET['operacao'] == 'dividir')
        {
            echo dividir ($_GET['numero1'],$_GET['numero2']);
        }
        if ($_GET['operacao'] == 'multiplicar')
        {
            echo multiplicar ($_GET['numero1'],$_GET['numero2']);
        }
    }
?>

</body>
</html>


Uma forma de aprender de verdade sobre o php é fazendo cursos on-line, com isso você não irá depender de ferramentas e bibliotecas de terceiros.
Hoje recomendo o curso ULTIMATE PHP 2.0 clicando no link https://go.hotmart.com/A5972583D

quinta-feira, 2 de maio de 2013

Formulário simples com php integrado

            Esse formulário em html tem integrado no corpo do código um bloco em php simples. É apenas como exemplo de que o php pode ser incluido no código não tendo a necessidade de que se faça separado. Então vamos ao código:

<html>
<head>
       <title>Formulário</title>
</head>
<body>
     <form action="aula2.php" method="get"> // neste trecho agente define o nome do arquivo php a ser acessado e através de qual método vai ser acessado.
    
     <label>Nome: </label>
     <input type="text" name="nome" id="nome"> <br> // envia o conteúdo para variável nome
     <label>Idade: </label>
     <input type="text" name="idade" id="idade"> <br>
     <br>
     <input type="submit" name="Enviar" value="Enviar valores">
     <input type="reset" />
     </form>
     //trecho do código que inicia o php.
     <?php 

            if(isset($_GET['nome'])); //recebe pelo método GET o conteúdo do formulário
             {echo 'O nome digitado foi: ' . $_GET['nome'];} //imprime na tela
     ?>
</body>
</html>

Obs.: Não há necessidade de codificar um arquivo em html e php em separado, mas toda vez que fou integrado o arquivo tem que ser salvo como ".php" mesmo que tenha apenas uma linha de código php.

Uma forma de aprender de verdade sobre o php é fazendo cursos on-line, com isso você não irá depender de ferramentas e bibliotecas de terceiros.
Hoje recomendo o curso ULTIMATE PHP 2.0 clicando no link https://go.hotmart.com/A5972583D