quarta-feira, 23 de maio de 2012

Tela para relembrar a senha através de e-mail

Esta tela é um complemento da tela de logon postado anteriormente. Considere que essa tela é um pouco diferente porque tem dois campos para fazer o logon no seu email. Eu coloquei esses dois campos para facilitar a demonstração a meus alunos e também para não revelar minha senha. Risos. O código abaixo refere-se a uma tela de logon. Como você já deve entender, o código abaixo é para dar a funcionalidade. Espero ter contribuído para o seu crescimento profissional. Abraço a todos.

Tela de Logon em Asp.Net e C#(sharp)

Caso você precise autorizar os usuários acessar aplicações em Asp.Net e C#, acredito, que esse código poderá ajuda-lo no desenvolvimento.
Inicialmente, criamos uma tabela no banco de dados conforme o script em MySql abaixo.

Após esta tabela ser criada, passamos então a criação da tela em asp.net, o nome da tela : logon.asp.

Coloque também o código em C#(Sharp) logon.asp.cs


Valeu pessoal grande abraço.

terça-feira, 22 de maio de 2012

Fazendo um Crud usando C# e Asp.Net

O significado de CRUD é Create, Read, Updade and Delete que são as funções básicas de um sistema de gerenciamento de informações. Neste POST mostrarei como fazer a partir de um exemplo simples em sala de aula. Inicialmente devemos criar um Banco de dados chamado Stonehenge e em seguida procedemos a criação das telas em C# com seu respectivo código. Veja o código de criação no quadro abaixo: Agora que já criamos o banco, vamos proceder na criação do código em Asp.Net. Abra o Visual Studio, crie um projeto do tipo WebSite e crie um formulario usando a opção clicando no botão direito do mouse sobre o projeto. troque o código Asp.net pelo que esta no quadro a seguir. O nome deste arquivo deve se chamar listarClientes.asp Como podem notar em uma das linhas retornadas pelo código do arquivo listarClientes.aspx o usuário deverá clicar no nome do cliente e o mesmo será desviado para uma tela chamada alterarCliente.aspx, cujo código pode ser visto abaixo: Juntamente com esse código devemos ter os códigos em C# que dará a funcionalidade que desejamos. Veja a seguir : Agora só falta o código que faz a atualização no banco de dados.

sexta-feira, 18 de maio de 2012

Formulario para cadastro de Artigo ou Nóticias

Olá Pessoal,

Estou mais uma vez disponibilizando um formulário em C#(Sharp) para cadastramento de Artigos ou Noticias em um formulário Web.
Espero que gostem e utilizem ele.
Abraço e até o próximo post.
Não esqueçam também deste código que deve ter o mesmo nome, porém coma extensão aspx.cs.

segunda-feira, 14 de maio de 2012

Tela de cadastro de clientes com list box

Olá Pessoal

Neste artigo mostrarei como fazer uma tela(protótipo) para cadastramento de clientes e seleção de assuntos de interesse do cliente. É apenas uma demonstração do nosso curso de C# onde demonstramos a manipulação de ListBox em um WebForm.
Acompanhe o código abaixo e veja como ficou.


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <style type="text/css">
        .style2
        {
            width: 96px;
            height: 34px;
        }
        .style3
        {
            height: 34px;
        }
        .style4
        {
            width: 123px;
        }
        .style5
        {
            width: 157px;
            text-align: center;
        }
        .style6
        {
            text-align: center;
        }
        .style7
        {
            text-align: left;
        }
    </style>
</head>
<form id="form1" runat="server">
<table align="center">
    <tr>
        <td class="style6" colspan="2">
            Cadastro de Clientes</td>
    </tr>
    <tr>
        <td class="style6">
            &nbsp;</td>
        <td>
            &nbsp;</td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label1" runat="server" Text="Nome"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="nome" runat="server" Columns="50" Font-Size="Medium"
                Height="28px" MaxLength="50" Width="431px"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label2" runat="server" Text="Endereço"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="endereco" runat="server" Columns="50" Font-Size="Medium"
                Height="28px" MaxLength="50" Width="431px"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label3" runat="server" Text="Telefone"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="telefone" runat="server" Columns="14" Font-Size="Medium"
                MaxLength="14"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label4" runat="server" Text="Bairro"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="Bairro" runat="server" Columns="30" Font-Size="Medium"
                Height="22px" MaxLength="30" Width="261px"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label5" runat="server" Text="Cidade"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="cidade" runat="server" Columns="30" Font-Size="Medium"
                Height="22px" MaxLength="30" Width="261px"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label6" runat="server" Text="Estado"></asp:Label>
        </td>
        <td>
            <asp:DropDownList ID="estado" runat="server">
                <asp:ListItem Value="AC">Acre</asp:ListItem>
                <asp:ListItem Value="AL">Alagoas</asp:ListItem>
                <asp:ListItem Value="AP">Amapá</asp:ListItem>
                <asp:ListItem Value="AM">Amazonas</asp:ListItem>
                <asp:ListItem Value="BA">Bahia</asp:ListItem>
                <asp:ListItem Value="CE">Ceará</asp:ListItem>
                <asp:ListItem Value="DF">Distrito Federal</asp:ListItem>
                <asp:ListItem Value="ES">Espirito Santo</asp:ListItem>
                <asp:ListItem Selected="True" Value="GO">Goiás</asp:ListItem>
                <asp:ListItem Value="MA">Maranhão</asp:ListItem>
                <asp:ListItem Value="MT">Mato Grosso </asp:ListItem>
                <asp:ListItem Value="MS">Mato Groso do Sul</asp:ListItem>
                <asp:ListItem Value="MG">Minas Gerais</asp:ListItem>
                <asp:ListItem Value="PA">Pará</asp:ListItem>
                <asp:ListItem Value="PB">Paraíba</asp:ListItem>
                <asp:ListItem Value="PR">Paraná</asp:ListItem>
                <asp:ListItem Value="PE">Pernambuco</asp:ListItem>
                <asp:ListItem Value="PI">Piauí</asp:ListItem>
                <asp:ListItem Value="RJ">Rio de Janeiro</asp:ListItem>
                <asp:ListItem Value="RN">Rio Grande do Norte</asp:ListItem>
                <asp:ListItem Value="RS">Rio Grande do Sul</asp:ListItem>
                <asp:ListItem Value="RO">Rondônia</asp:ListItem>
                <asp:ListItem Value="RR">Roraíma</asp:ListItem>
                <asp:ListItem Value="SP">São Paulo</asp:ListItem>
                <asp:ListItem Value="SC">Santa Catarina</asp:ListItem>
                <asp:ListItem Value="SE">Sergipe </asp:ListItem>
                <asp:ListItem Value="TO">Tocantins</asp:ListItem>
            </asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td class="style7">
            <asp:Label ID="Label7" runat="server" Text="CPF"></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="cpf" runat="server" Columns="14" MaxLength="14"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="style6">
            &nbsp;</td>
        <td>
            <table style="width:100%;">
                <tr>
                    <td class="style4" style="text-align: center">
                        <asp:Label ID="Label9" runat="server" Text="Assuntos"></asp:Label>
                    </td>
                    <td class="style5">
                        <asp:Label ID="Label11" runat="server" Width="20px"></asp:Label>
                    </td>
                    <td style="text-align: center">
                        <asp:Label ID="Label10" runat="server" Text="Prediletos"/>
                    </td>
                </tr>
                <tr>
                    <td class="style4" rowspan="4">
                       <asp:ListBox id="assuntos" runat="server" Height="116px" Width="121px">
                            <asp:ListItem Value="inf">Informatica</asp:ListItem>
                            <asp:ListItem Value="Aut">Automóvel</asp:ListItem>
                            <asp:ListItem Value="Cul">Cultura</asp:ListItem>
                            <asp:ListItem Value="Cui">Culinaria</asp:ListItem>
                            <asp:ListItem Value="Tre">Treinamento</asp:ListItem>
                            <asp:ListItem Value="Fin">Finanças</asp:ListItem>
                            <asp:ListItem Value="Rel">Religião </asp:ListItem>
                            <asp:ListItem Value="Pol">Política</asp:ListItem>
                        </asp:ListBox>
                    </td>
                    <td class="style5">
                        <asp:Button ID="tudoL" runat="server" Text="&lt;&lt;" onclick="tudoL_Click"
                            ToolTip="Limpar todos os assuntos prediletos e voltar para assuntos" />
                    </td>
                    <td rowspan="4">
                        <asp:ListBox ID="prediletos" runat="server" Height="119px" Width="132px"
                            SelectionMode="Multiple">
                        </asp:ListBox>
                    </td>
                </tr>
                <tr>
                    <td class="style5">
                        <asp:Button ID="tudoR" runat="server" Text="&gt;&gt;" onclick="tudoR_Click" />
                    </td>
                </tr>
                <tr>
                    <td class="style5">
                        <asp:Button ID="RtoL" runat="server" Text=" &lt; " onclick="RtoL_Click" />
                    </td>
                </tr>
                <tr>
                    <td class="style5">
                        <asp:Button ID="LtoR" runat="server" onclick="LtoR_click" Text=" &gt; " />
                    </td>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td class="style2">
        </td>
        <td class="style3">
            <asp:Button ID="Button1" runat="server" onclick="limparCampos" Text="Limpar" />
            <asp:Label ID="Label8" runat="server" Height="17px" Width="304px">                                  
            </asp:Label>
            <asp:Button ID="Salvar" runat="server" Text="Salvar" />
        </td>
    </tr>
</table>
&nbsp;&nbsp;&nbsp;
</form>
<script language="C#" runat="server">
 

</script>
</html>

agora no arquivo Default.aspx.cs coloque.







Espero que tenham gostado deste código e desafio você a fazer o restante do código. Abraço a todos.
Jorge Albernaz Martins.'.

sexta-feira, 4 de maio de 2012

Classe em C-Sharp que faz logon num banco de dados MYSQL

Olá pessoal depois de um longo tempo sem postagens, estou retomando o blog.
Neste artigo vou apresentar a vocês um código para fazer logon através de uma classe que acessa uma banco de dados MySQL.
Não esqueçam  de baixar o conector do MySql ou qualquer outro banco que você usar.
// inicio do codigo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;

/// <summary>
/// Summary description for Class1
/// </summary>
public class logon
{
   static string user = "";
   static string password = "";
   static string banco = "";
   static string servidor = "";
   static string conexao = "Server="+servidor+";Database="+banco+";Port=3306;Uid="+user+";Pwd="+password+";";

public logon()
{
}
    public bool verifica(String usuario, string senha) {
        bool retorno = false;
        MySqlConnection conn = new MySqlConnection(conexao);
        MySqlCommand comando = conn.CreateCommand();
        comando.CommandText = "Select * from usuario where user=";
        try {
            conn.Open();
            MySqlDataReader conjunto = comando.ExecuteReader();
            if (conjunto["usuario"] == usuario && conjunto["senha"] == senha)
            {
                retorno = true;
            }
            else
            {
                retorno = false;
                Console.
            }

        }
        catch (Exception ex)
        {
            Console.WriteLine("Erro do tipo : " + ex.Message);
            retorno= false;
        }
        return retorno;
    }
}

quinta-feira, 1 de março de 2012

Cadastro de notas de alunos usando Matriz Bi dimensional - JAVA


package Aula05;

import javax.swing.JOptionPane;

public class CalculaMediaAlunoBiDimensional  {
    public static void main(String[] args) {
        String[] nome=new String[10];
        double[][] notas=new double[10][5];
        //faz se a entrada de dados
        for (int i = 0; i < 3; i++) {
            nome[i]=JOptionPane.showInputDialog("Nome ");
            notas[i][0]=Double.parseDouble(JOptionPane.showInputDialog("Nota 1 "));
            notas[i][1]=Double.parseDouble(JOptionPane.showInputDialog("Nota 2 "));
            notas[i][2]=Double.parseDouble(JOptionPane.showInputDialog("Nota 3 "));
            notas[i][3]=Double.parseDouble(JOptionPane.showInputDialog("Nota 4 "));
            notas[i][4]=(notas[i][0]+notas[i][1]+notas[i][2]+notas[i][3])/4;
        }
        for (int i = 0; i < 3; i++) {
            System.out.println("Nome : "+nome[i]);
            System.out.println("Nota 1 "+notas[i][0]);
            System.out.println("Nota 2 "+notas[i][1]);
            System.out.println("Nota 3 "+notas[i][2]);
            System.out.println("Nota 4 "+notas[i][3]);          
            System.out.println("Media "+notas[i][4]);
        }      
    }
}


   

quarta-feira, 29 de fevereiro de 2012

Trabalhando com variaveis homogeneas bi dimensionais.


import javax.swing.JOptionPane;
public class UsandoMatriz {
    public static void main(String[] args) {
       int lin = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a quantidade   de linha da Matriz."));
       int col = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a quantidade   de coluna da Matriz."));
       int matriz[][] = new int[lin][col];
      
   for (int i=0; i<lin; i++)
         for (int j=0; j<col; j++)
             matriz[i][j] = Integer.parseInt(JOptionPane.showInputDialog(   null,"Digite o valor da posição["+(i+1)+(j+1)+"]","MATRIZ",1));
      
  System.out.println("Matriz Digitada.");
      
  for (int i=0; i<lin; i++){
  System.out.println();
         for (int j=0; j<col; j++)
             System.out.print(matriz[i][j] + "\t");
       }
    }
}

terça-feira, 28 de fevereiro de 2012

Exercicio em sala de aula


public class Quadrado {
   public static void main (String args[ ])     {
         if (args.length < 1)  {
               System.out.println("Informe um numero menor ou igual 50");
               System.out.println("e sera calculado o quadrado dos numeros");
               System.out.println("entre 1 e o numero informado\n");
               System.exit(0);
         }
         // conversao de String para inteiro (outra maneira !)
         Integer x = new Integer(args[0]);
         int a = x.intValue();
         if (a > 50)   {
               System.out.println("O numero deve ser menor que 50");
               System.exit(0);
         }
         for (int i=1;  i<=a;  i++)
                System.out.println ("O quadrado de " + i + " = " + i*i);
   }
}

quinta-feira, 23 de fevereiro de 2012

Código fonte para o exercício Listagem de Clientes em ASP.Net e C#


Código fonte  do arquivo listaclientes.asp.cs
Para que você possa testar este programa carregue o banco de dados no link abaixo
Mala direta

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;

namespace primeirosite
{
    public partial class listaclientes : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MySqlConnection conn;
            string conexao = "Server=localhost; UserId=root; Password=; Database=maladireta;";
            conn = new MySqlConnection(conexao);
            string comando = "select id,nome,telefone from contato order by nome";
            MySqlCommand cmd = new MySqlCommand(comando);
            cmd.Connection = conn;
            conn.Open();
            MySqlDataReader dr;
            dr = cmd.ExecuteReader();
            Response.Write("<form id=\"form1\" runat=\"server\"><div>");
            Response.Write("<table style=\"width:100%\">");
            Response.Write("<tr><td colspan=\"4\" style=\"text-align: center\">");
            Response.Write("Listagem de Contatos</td>");
            Response.Write("</tr>");
            Response.Write("<tr>");
            Response.Write("<td class=\"style4\">");
            Response.Write("<asp:CheckBox ID=\"deleta\" runat=\"server\"/>");
            Response.Write("</td>");
            Response.Write("<td class=\"style2\">");
            Response.Write("Id</td>");
            Response.Write("<td class=\"style3\">");
            Response.Write("Nome</td>");
            Response.Write("<td style=\"text-align: center\">");
            Response.Write("Telefone</td>");
            Response.Write("</tr>");
            while (dr.Read()) {
                Response.Write("<tr>");
                Response.Write("<td class=\"style4\">&nbsp;</td>");
                Response.Write("<td class=\"style2\">"+dr["id"]+"</td>");
                Response.Write("<td class=\"style3\">"+dr["nome"]+"</td>");
                Response.Write("<td>" + dr["telefone"] + "</td></tr>");
            }
            conn.Close();
            Response.Write("</table>");
            Response.Write("</div></form>");
        }
    }
}

listaclientes.asp


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="listaclientes.aspx.cs" Inherits="primeirosite.listaclientes" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
        }
        .style2
        {
            width: 42px;
            text-align: left;
        }
        .style3
        {
            width: 641px;
            text-align: left;
        }
        .style4
        {
            width: 74px;
        }
    </style>
</head>
<body>

</body>
</html>


terça-feira, 21 de fevereiro de 2012

Como ganhar dinheiro com programas de computador?

Quando se fala em desenvolvimento de programas de computador, pensamos logo em aplicações para o comércio. De fato, é um bom nicho de mercado, porém altamente concorrido. Posso aqui dar alguns exemplos de grandes empresas do mercado de software que atuam nessa área: SAP, MICROSIGA, TOTVS, SANKHYA etc. Todas essas tem soluções para o mercado corporativo,grandes e médias empresas.
A conclusão obvia é que você não terá espaço nesse terreno de disputa. Mas como eu digo a meus alunos, não se ganha dinheiro fazendo aquilo que a maioria faz, mas se ganha, fazendo bem feito e o que poucos fazem. 
Partindo desse pressuposto devemos também selecionar bem nossos clientes, pois o que parece ser uma boa referencia também pode ser uma âncora amarrada no seu calcanhar. Procure começar fazendo pequenos trabalhos e manter uma constância de produtividade. Não deixe de documentar tudo processo de negociação bem como o projeto como um todo. Sempre que desenvolvemos algum programa o cliente no meio do caminho lembra daquela tela ou daquele campo que deveria ter para que a aplicação fique mais completa, no ponto de vista dele, mas que pode te atrapalhar e atrasar um tempo considerável. 
Se tudo esta documentado fica mais fácil mostrar que será necessário um novo prazo e consequentemente um novo valor a ser acrescentado no projeto. Lembre se de fazer algum tipo de comparação com a adoção do sistema que irá trazer algum ganho para a empresa que o contratou, assim se justifica o preço que esta cobrando. Infelizmente alguns empresários dão mais valor numa caminhonete ou carro de luxo que num sistema que vai lhe dar a possibilidade de ter um lucro mensal muito grande.  A rapidez na entrega também ajuda na obtenção de lucros, por isso você deve escolher bem a linguagem que vai usar.
Usar uma linguagem eficiente e que você domine faz parte de uma boa estrategia para se ganhar mercado. Se você estiver olhando como pessoa jurídica deve pensar numa linguagem que tem muita mão de obra no mercado e muito material de consulta, caso você seja pessoa física deve escolher uma linguagem que poucos dominam. Atualmente JAVA tem sido uma linguagem muito badalada no mercado ainda paga bons salários, mas já vejo que isso começa a cair, pois se você procurar já encontrará um numero bom de pessoas que "sabem programar", não vale o famoso Hello World. 
Porém há o COBOL que por uma questão de uma grande base instalada e porque nós os "dinossauros" estamos nos aposentando e abrem se novas vagas. Outro fator que ajuda é ter no seu perfil o conhecimento de JAVA e COBOL. Normalmente grandes empresas que pretendem migrar seus sistemas em COBOL o querem fazer para ambiente WEB e JAVA.
Outro nicho que vem crescendo no mercado é as aplicações para celulares. Quando falamos em celulares logo vem a cabeça ANDROID do GOOGLE, nome de um sistema operacional para telefones que vem ganhando muita força e se estabelece como um padrão. Existem várias historias de pessoas que ganharam dinheiro fazendo um aplicativo simples e que venderam a $US1,00  cerca de hum milhão de cópias. Normalmente as pessoas trocam de celular a cada dois anos e talvez menos e que cada vez mais elas querem mobilidade então o caminho a se trilhar é explorar programas que facilitem o dia a dia dos usuários. Que desejamos hoje quando saímos de casa? No meu caso, como chegar mais rápido a minha unidade de trabalho e antes de um PORTUGUÊS que todo dia me espera na porta apontando para o  relógio, risos, embora nos dois sabemos os motivos. O que quero dizer é que se meu celular tiver um GPS e minha Goiânia tivesse um sistema de câmeras de trânsito poderia ter uma rota alternativa que me pudesse chegar mais rápido através de um programa que me apontasse tal rota. 
Outro exemplo de aplicação é um que poderia me avisar no celular quais faturas tenho que pagar e quais as receitas que tem que receber no dia desde integrasse a um sistema web.
Concluindo, o mundo da programação tem muitas portas para serem abertas ou ainda portas abertas que ainda não foram bem exploradas. Cabe a você fazer uma boa capacitação na área de programação e ficar atento as oportunidades, tanto como empregado como empreendedor. Um autor que gosto, Alvim Toffler diz na Terceira onda, o emprego mudará radicalmente nos anos 2000 e que seremos mais 90% sem ter o que fazer, portanto explorar as principais necessidades do ser humano no seculo 21 será o caminho certo para se achar o veio de ouro na programação de computadores.
Um forte abraço e até o próximo post.

quarta-feira, 15 de fevereiro de 2012

Um calculadora com bugs, mas boa de aprender C# (versão alpha -1)


Pessoal este código cria uma calculadora no C# semelhante a do Windows. Guardando as devidas proporções.

Abaixo estão as listagens do arquivos
MainWindow.xaml
MainWindow.xaml.cs


MainWindow.xaml

<Window x:Class="Calculadora.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="404" Width="426" Background="#FFEBE5E5" WindowStyle="ThreeDBorderWindow">
    <Grid Width="358">
        <Button Content="7" Height="28" HorizontalAlignment="Left" Margin="91,127,0,0" Name="sete" VerticalAlignment="Top" Width="37" Click="sete_Click" />
        <TextBox Height="53" HorizontalAlignment="Right" Margin="0,34,54,0" Name="display" VerticalAlignment="Top" Width="213" FontFamily="Arial" FontSize="28" HorizontalContentAlignment="Right" />
        <Button Content="8" Height="28" HorizontalAlignment="Left" Margin="134,127,0,0" Name="oito" VerticalAlignment="Top" Width="37" Click="oito_Click" />
        <Button Content="9" Height="28" HorizontalAlignment="Left" Margin="177,127,0,0" Name="nove" VerticalAlignment="Top" Width="37" Click="nove_Click" />
        <Button Content="4" Height="28" HorizontalAlignment="Left" Margin="91,161,0,0" Name="quatro" VerticalAlignment="Top" Width="37" Click="quatro_Click" />
        <Button Content="5" Height="28" HorizontalAlignment="Left" Margin="134,161,0,0" Name="cinco" VerticalAlignment="Top" Width="37" Click="cinco_Click" />
        <Button Content="6" Height="28" HorizontalAlignment="Left" Margin="177,161,0,0" Name="seis" VerticalAlignment="Top" Width="37" Click="seis_Click" />
        <Button Content="1" Height="28" HorizontalAlignment="Left" Margin="91,195,0,0" Name="um" VerticalAlignment="Top" Width="37" Click="um_Click" />
        <Button Content="2" Height="28" HorizontalAlignment="Left" Margin="134,195,0,0" Name="dois" VerticalAlignment="Top" Width="37" Click="dois_Click" />
        <Button Content="3" Height="28" HorizontalAlignment="Left" Margin="177,195,0,0" Name="tres" VerticalAlignment="Top" Width="37" Click="tres_Click" />
        <Button Content="0" Height="28" HorizontalAlignment="Left" Margin="91,229,0,0" Name="zero" VerticalAlignment="Top" Width="80" Click="zero_Click" />
        <Button Content="," Height="28" HorizontalAlignment="Left" Margin="177,229,0,0" Name="virgula" VerticalAlignment="Top" Width="37" FontSize="18" Click="virgula_Click" />
        <Button Content="+" Height="28" HorizontalAlignment="Left" Margin="220,229,0,0" Name="soma" VerticalAlignment="Top" Width="37" Click="soma_Click" />
        <Button Content="-" Height="28" HorizontalAlignment="Left" Margin="220,195,0,0" Name="subtracao" VerticalAlignment="Top" Width="37" Click="subtracao_Click" />
        <Button Content="*" Height="28" HorizontalAlignment="Left" Margin="220,0,0,176" Name="multiplicacao" VerticalAlignment="Bottom" Width="37" Click="multiplicacao_Click" />
        <Button Content="/" Height="28" HorizontalAlignment="Left" Margin="220,127,0,0" Name="divisao" VerticalAlignment="Top" Width="37" Click="divisao_Click" />
        <Button Content="=" Height="60" HorizontalAlignment="Left" Margin="267,198,0,0" Name="igual" VerticalAlignment="Top" Width="37" Click="igual_Click" />
        <Button Content="1/x" Height="28" HorizontalAlignment="Left" Margin="267,0,0,176" Name="inverso" VerticalAlignment="Bottom" Width="37" Click="inverso_Click" />
        <Button Content="%" Height="28" HorizontalAlignment="Left" Margin="267,127,0,0" Name="percente" VerticalAlignment="Top" Width="37" />
        <Button Content="&lt;--" Height="28" HorizontalAlignment="Left" Margin="91,93,0,0" Name="voltar" VerticalAlignment="Top" Width="37" Click="voltar_Click" />
        <Button Content="CE" Height="28" HorizontalAlignment="Left" Margin="134,93,0,0" Name="button1" VerticalAlignment="Top" Width="37" Click="button1_Click" />
        <Button Content="C" Height="28" HorizontalAlignment="Left" Margin="177,93,0,0" Name="button2" VerticalAlignment="Top" Width="37" Click="button2_Click" />
        <Button Height="28" HorizontalAlignment="Right" Margin="0,93,54,0" Name="raiz" VerticalAlignment="Top" Width="37" Content="√" Click="raiz_Click" />
        <Button Height="28" HorizontalAlignment="Left" Margin="220,93,0,0" Name="maisoumenos" VerticalAlignment="Top" Width="37" Content="±" Click="maisoumenos_Click" />
    </Grid>
</Window>



MainWindow.xaml.cs

System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Calculadora
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        double acumula = 0;
        string operacao = "";
        public MainWindow()
        {
            InitializeComponent();
        }

        private void sete_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "7";
        }

        private void zero_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "0";
        }

        private void um_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "1";
        }

        private void dois_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "2";
        }

        private void tres_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "3";
        }

        private void quatro_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "4";
        }

        private void cinco_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "5";
        }

        private void seis_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "6";
        }

        private void oito_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "8";
        }

        private void nove_Click(object sender, RoutedEventArgs e)
        {
            display.Text += "9";
        }

        private void soma_Click(object sender, RoutedEventArgs e)
        {
           
            if (operacao == "*" || operacao=="-" || operacao == "/")
            {
                operacao = "+";
            }
            else
            {
                acumula += double.Parse(display.Text);
                display.Text = "";
                operacao = "+";
            }

        }

        private void igual_Click(object sender, RoutedEventArgs e)
        {
            if (operacao == "+")
            {
                acumula += double.Parse(display.Text);
                display.Text = acumula.ToString();
            }
            else if (operacao == "-")
            {
                acumula -= double.Parse(display.Text);
                display.Text = acumula.ToString();
            }
            else if (operacao=="*"){
                acumula *= double.Parse(display.Text);
                display.Text = acumula.ToString();
            }
            else if (operacao == "/") {
                if (double.Parse(display.Text) != 0)
                {
                    acumula /= double.Parse(display.Text);
                    display.Text = acumula.ToString();
                }
                else {
                    display.Text = "Divisão por zero";
                }
            }
        }

        private void virgula_Click(object sender, RoutedEventArgs e)
        {
            display.Text += ",";
        }

        private void subtracao_Click(object sender, RoutedEventArgs e)
        {
            if (operacao == "*" || operacao == "+" || operacao == "/")
            {
                operacao = "-";
            }  else {
                acumula = double.Parse(display.Text);
                display.Text = "";
                operacao = "-";
            }
        }

        private void multiplicacao_Click(object sender, RoutedEventArgs e)
        {
            if (operacao == "-" || operacao == "+" || operacao == "/")
            {
                operacao = "*";
            }
            else
            {
                acumula = double.Parse(display.Text);
                display.Text = "";
                operacao = "*";
            }
        }

        private void divisao_Click(object sender, RoutedEventArgs e)
        {
            if (operacao == "*" || operacao == "+" || operacao == "-")
            {
                operacao = "/";
            }
            else
            {
            acumula = double.Parse(display.Text);
            display.Text = "";
            operacao = "/";}
        }

        private void voltar_Click(object sender, RoutedEventArgs e)
        {
            int x = display.Text.Length-1;
            if (x >= 0)
            {
                display.Text = display.Text.Substring(0, x);
            }
        }

        private void inverso_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                double d = double.Parse(display.Text);
                if (d == 0)
                {
                    display.Text = "Divisão por zero!!!";
                }
                else
                {
                    d = 1 / d;
                    display.Text = d.ToString();
                }
            }
            catch (Exception Ex) {
               
                for (int i = 0; i < 100000; i++)
                {
                    display.Text = "vc é bobo. ";
                    // em espera.
                }
                display.Text = "";

            }
        }

        private void raiz_Click(object sender, RoutedEventArgs e)
        {
            double x = double.Parse(display.Text);
            if (x < 0)
            {
                display.Text = "Valor invalido.";
            }
            else {
                x = Math.Sqrt(x);
                display.Text = x.ToString();
            }

        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            acumula = 0;
            display.Text = "";
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            display.Text = "";
            operacao = "";
        }

        private void maisoumenos_Click(object sender, RoutedEventArgs e)
        {
            double x = double.Parse(display.Text)*(-1);
            display.Text = x.ToString();
        }
    }
}

Espero que tenham gostado do exemplo, vai um + ai? Mostre também para seus colegas o que estão aprendendo no curso através das redes sociais. Um Forte abraço e até o próximo post.

terça-feira, 14 de fevereiro de 2012

Listagem de Produtos em C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Arrayprodutos
{
    class Program
    {
        static void Main(string[] args)
        {
            string[,] produto = new string[10, 2];
            double[,] estoque = new double[10, 2];
            for (int i = 0; i < 10; i++)
            {
                Console.Write("Nome ....: ");
                produto[i, 0] = Console.ReadLine();
                Console.Write("Unidade..: ");
                produto[i, 1] = Console.ReadLine();
                Console.Write("Pr. Unit.: ");
                estoque[i, 0] = double.Parse(Console.ReadLine());
                Console.Write("Qtd Estoq: ");
                estoque[i, 1] = double.Parse(Console.ReadLine());                
            }
            for (int i = 0; i < 10; i++)
            {
                Console.Write("Nome ....: "+produto[i, 0]);
                Console.Write("Total Est. : "+(estoque[i, 0]*estoque[i, 1]));
            }
        }
    }
}

Correção exercicio de C# para calculo das médias.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace estudantes
{
    class medias
    {
        static void Main(string[] args)
        {
            string[] nome = new string[10];
            double[,] notas = new double[10, 5];
            string[] colunas = new string[6]
            {"\nnome","nota-1","nota-2","nota-3","nota-4","média" };
            for (int i = 0; i < 10; i++)
            {
                Console.Write(colunas[0]);
                nome[i] = Console.ReadLine();
                for (int k = 0; k < 4; k++)
                {
                    Console.Write(colunas[k + 1]);
                    notas[i, k] = double.Parse(Console.ReadLine());
                    notas[i, 4] += notas[i, k] / 4;
                }
            }
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(colunas[0]+nome[i]);
                for (int k = 0; k < 5; k++)
                {
                    Console.WriteLine(colunas[k + 1] + notas[i, k]);
                }
                if (notas[i, 4] >= 7) {
                    Console.WriteLine("Situação : Aprovado");
                }
                else if (notas[i, 4] >= 5 && notas[i, 4] < 7)
                {
                    Console.WriteLine("Situação : Prova final");
                }
                else {
                    Console.WriteLine("Situação : Reprovado");
                }              
            }
        }
    }
}

Demonstração de Array bi dimensional

O programa abaixo escrito na linguagem C#(C SHARP ) demonstra como usar um ARRAY bi dimensional. Definimos dois Arrays, sendo um bi dimensional e um VETOR. o ARRAY tabela define a estrutura de armazenamento e o colunas define o rotulo de cada coluna.
Forte abraço e até a próxima.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ArraysBiDimensionais
{
    class Entradados
    {
        static void Main(string[] args)
        {
            string[,] tabela = new string[10, 3];
            string[] colunas=new string[3]
                     {"Produto : ","Unidade : ","Valor  : "};
            for (int i = 0; i < 10; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    Console.Write(colunas[k]);
                    tabela[i, k] = Console.ReadLine();
                }
            }
            for (int k = 0; k < 3; k++)
            {
                Console.Write(colunas[k] + "***** ");
            }
            Console.WriteLine(" ");
            for (int i = 0; i < 10; i++)
            {
                for (int k = 0; k < 3; k++)
                {
                    Console.Write(tabela[i, k] + "***** ");
                }
                Console.WriteLine(" ");            
            }
            Console.ReadKey();
        }
    }
}

segunda-feira, 13 de fevereiro de 2012

Calculo das raizes da equação do 2º Grau em C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Matematica
{
    class Program
    {
        static void Main(string[] args)
        {
            double a, b, c, d, x1, x2;
            Console.WriteLine("Equação 2º Grau");
            Console.Write(" Valor de a : ");
            a = double.Parse(Console.ReadLine());

            Console.Write(" Valor de b : ");
            b = double.Parse(Console.ReadLine());

            Console.Write(" Valor de c : ");
            c = double.Parse(Console.ReadLine());
            Console.WriteLine(a + "x² + " + b + "x + " + c + "=0");
            d = b * b - 4 * a * c;
            if (d > 0) {
                Console.WriteLine("Existem duas raizes reais");
                x1 = (-b + Math.Sqrt(d)) / (2 * a);
                x2 = (-b - Math.Sqrt(d)) / (2 * a);
                Console.WriteLine("x'= " + x1);
                Console.WriteLine("x''= " + x2);
            }
            else if (d == 0)
            {
                Console.WriteLine("Existem duas raizes reais e iguais.");
                x1 = -b / (a * 2);
                Console.WriteLine("x'=x''= " + x1);
            }
            else {
                Console.WriteLine("Nao existem raizes reais");
            }
            Console.ReadKey();

        }
    }
}

terça-feira, 7 de fevereiro de 2012

Programar é um exercício de paciência e disciplina.

Há quem diga que programar é fácil. É uma tese difícil de ser dita como verdadeira. Não quero desmotivar meus leitores quanto menos meus alunos, mas programar é uma arte disciplinar.
Quando programamos colocamos nosso cérebro no modo de pensamento em que devemos abstrair, sincronizar, interagir, testar, observar comportamentos e claro fazer alguns cálculos. Toda essa sinergia de pensamento pode ser abalada por um simples tocar de telefone, uma campainha do MSN e a sua filha pedindo lhe atenção para ver uma cachorrinho brincando. Claro que não podemos ficar ligados 24 horas no ar pensando no problema. Brincar com o filho ou a filha faz parte da vida. 
Quando estamos programando também somos professores pois estamos ensinando uma máquina fazer o que desejamos. Se devemos agir como professores então devemos planejar corretamente como vamos abordar o problema para obter o comportamento correto.  Além disso devemos pensar na capacidade de processamento e também qual é a saída desejada. Por essa razão devemos ter cuidados especiais neste momento pois o computador faz tudo o que pedimos ao pé da letra. Ter lucidez ao fazer uma linha de código é um exercício diário de paciência e disciplina. Acredito que as duas andam juntas. 
A paciência é o ato de acompanhar passo a passo o que cada linha de código retorna. A disciplina usamos quando observamos o comportamento do programa. Captar o que um programa faz as vezes não é uma tarefa simples pois os códigos podem ocultar informações que nos enganam quando a procedência e como foram gerados levando a conclusões errôneas e dai um tempo perdido pode vir acontecer. O pensamento matemático o ajudará na eliminação de código redundante e também alcançar a eficiência de desempenho.  Desta forma colocada podemos afirmar que paciência e disciplina andam juntas nesta arte pois uma dará suporte a outra a medida que avançamos na construção de um código.



quinta-feira, 2 de fevereiro de 2012

COBOL? Nao morreu!

Muitas pessoas me perguntam:  Ainda hoje o COBOL é usado? Eu começo esse artigo repetindo um brincadeira dos profissionais que lidam com essa ferramenta: "Se houver um holocausto nuclear apenas duas coisas sobreviveriam, são elas, baratas e cobol.". Claro que há um grande absurdo nisso, mas essa discussão não seria frutífera aqui. Dizemos isso porque várias vezes falaram por ai que a linguagem estaria morta e que seria necessário migrar para outra linguagem, mas o que presenciei foi um ressurgimento da linguagem cada vez mais melhorada. Talvez no inicio dos anos 60 a CODASYL(Conference on Data Systems Languages) não tivesse essa pretensão. 
Hoje a linguagem de programação COBOL é bastante utilizada em diversos seguimentos, bancos, hotéis, supermercados e muitos outros estabelecimentos sejam comerciais ou governamentais. 
A migração de plataforma de banco de dados e de sistema operacional é uma opção hoje em dia quando  alguém que não tem experiência com a linguagem e quer mudar de sistema. Mas a confiabilidade em novo sistema pode trazer alguns transtornos para a organização e consequentemente afetam as suas operações no dia a dia. Estes transtornos trazem a antiga aplicação uma certa confiabilidade e estabilidade.
E isso faz o COBOL uma linguagem que vem atravessando mais de 50 anos como ferramenta de desenvolvimento de aplicações. Esta confiabilidade foi obtida através dos primeiros anos da linguagem, época em que houve um boooom na adoção de computadores e consequentemente a necessidade de desenvolver programas confiáveis  no começo dos anos 70 e 80, sendo reforçada pela inclusão dos PC's(personal Computers) introduzidos no começo dos anos 80. De la para cá tem se criado muitas linguagens de programação mas a migração as vezes não é bem sucedida. 
Mas a linguagem não ficou parada neste período, sendo atualizada varias vezes pelo CODASYL e por várias empresas que desenvolveram compiladores e também IDE(Ambiente de desenvolvimento Integrado) a fez manter atualizada com os paradigmas de programação atualmente em voga no mercado. Podemos destacar estes paradigmas como orientação a objeto e GUI (Graphical User Interfaces). 
Hoje o COBOL encontramos sistemas desenvolvidos para Windows 32 e 64 bits, ambiente Linux, Unix e claro não poderia deixar de citar, o Main Frame, bem como ferramentas de desenvolvimento de relatórios.
Você pode que trabalha na área ou esta entrando agora pode se perguntar, quem usa cobol para desenvolver, talvez pequenas e medias empresa não usem por serem muito novas em relação a idade do cobol mas empresas que sobreviveram aos últimos cinquenta anos, certamente adotou, adota ou mantém sistemas em COBOL. Os bancos e grandes corporações se utilizam destes sistemas. Talvez não esteja ao seu alcance se você estiver pensando em morar na sua cidade e trabalhar, mas estiver sintonizado com o mercado e tiver disponibilidade poderá ver essa tendência. Os dinossauros(nos programadores de quase 60 anos) estão se retirando e ainda há muitos sistemas por ai para dar manutenção ou desenvolver. Pense! Ganha dinheiro na área de informatica quem faz algo diferente da maioria.
Fiquem todos com Deus e um forte abraço a todos, obrigado.