Peça Agora!

quinta-feira, 31 de março de 2016

Programação Web

Para aqueles interessados em Programação Web, afinal nos tempos atuais tudo está voltado para web, vou comentar um pouco sobre o básico e alguns requisitos.

Primeiramente devemos ter em mente que um site funciona, basicamente, como um carro.
Por fora a chaparia e as pinturas, todas bonitas a qual observamos, e por dentro o motor que faz o carro andar.
Em um site existe elementos parecidos. A parte visual e bonita a qual observamos, é chamada de Front-End, o lado do cliente. A parte do motor que faz o site rodar, é chamado de Back-End, o lado do servidor. O programador que desenvolve tanto Front quanto Back-End é chamado de Full-Stack.

No Front-End, utilizamos a Linguagem de Marcação HTML e a Linguagem de Estilo CSS. Também temos a Linguagem de Programação que executa scripts na pagina do lado do cliente, e a JQuery que é uma biblioteca do JavaScript que serve para simplificar os scripts do lado do cliente, interagindo diretamente com o HTML da página.

No Back-End, existem diversas ferramentas e linguagens de programação. Atualmente a mais conhecida é o PHP, porem também temos a Linguagem Ruby(Oh yeah!), temos o Python(Inclusive é usado pelo próprio Google, YouTube, entre outros), e o ASP.NET da Microsoft que também é muito utilizado pelas empresas. Existem varias outras, mas esses são os principais.

Para facilitar na programação Back-End, utilizamos de Frameworks. Frameworks é uma união de códigos comuns e bibliotecas para criar uma funcionalidade genérica.

Os Frameworks mais conhecidos são o Cake e o Laravel da PHP, o Ruby on Rails do Ruby, o Django do Python e o próprio .NET que é utilizado pela plataforma ASP.NET utilizando de varias linguagens que são inclusas no .NET como Python, Ruby, C#(Principal), VB.NET, F#, e muitas outras.

Também temos os Frameworks para HTML e CSS, sendo o mais conhecido o Bootstrap.

Então basicamente se você quer se aventurar na programação Web está ai um bom exemplos do que precisará estudar.

Como dica vou dizer os passos para seguir em frente nesta aventura:

1° - Sugiro que comece aprendendo HTML e CSS, pois será uma das principais ferramentas utilizadas.
2° - Aprenda JavaScript e JQuery, porque alem do HTML e CSS, estes dois sempre estarão presente em suas páginas caso queira que ela seja mais dinâmica.
3° - Escolha uma linguagem de sua preferencia como Ruby, C#, Python, PHP, ou outras possíveis.
4° - Quando estiver em um bom nível na linguagem e achar que ja está bom o suficiente, inicie a estudar o Framework da sua linguagem escolhida, pois você utilizará bastante dele.
5° - Não esquecer de estudar SQL pois Banco de Dados será muito utilizado daqui pra frente.
6° - Procurar ferramentas que vão aprimorar seus conhecimentos e melhorar seu trabalho como AngularJS, Node.JS, JSON, XML, e muito mais.
7° - Esse deveria ser desde o começo. Você tem que está antenado nas comunidades, principalmente da linguagem e Framework escolhido. La eles iram tirar muitas duvidas suas, ajudar quando tiver problemas e talvez em breve você possa ajudar alguem também.(Facebook favorece muito isso)
8° - Participe do GitHub, la você encontrar Open Sources no qual você poderá ajudar, poderá aprender, e muito mais.

Então é isso, Boa Sorte em Sua Nova Jornada.

segunda-feira, 28 de março de 2016

Texto Motivacional para Evoluir na Profissão

Um belo texto motivacional. Não só para quem é da área de TI e Desenvolvimento, mas também para todas as áreas.


Tradução Livre do Texto de Ira Glass:

“Ninguém diz isso para os iniciantes. Eu desejava que alguém tivesse me dito. Todos nós que fazemos trabalhos criativos, entramos nisso porque temos bom gosto. Mas existe uma lacuna. Nos nossos primeiros anos que fazemos coisas, elas não são tão boas. Elas tentam ser boas, tem potencial, mas elas não. Mas o seu bom gosto, a coisa que fez você entrar nesse jogo, ainda é matador. E o seu bom gosto é o que faz o seu trabalho te desapontar. Várias pessoas nunca passam dessa fase, elas desistem. Várias pessoas que eu sei que fazem trabalhos criativos e interessantes passaram por anos disto. Nós sabemos que nosso trabalho não tem aquela coisa especial que gostaríamos que tivesse. Todos nós passamos por isso. E se você está apenas começando ou ainda está nessa fase, você precisa saber que isso é normal e a coisa mais importante que você precisa fazer é um monte de trabalhos. Coloque uma meta para você e toda semana você vai terminar um projeto. Só passando por um grande volume de trabalho que você irá diminuir essa lacuna e o seu trabalho vai ser tão bom quanto suas ambições. E eu levei mais tempo para descobrir como fazer isso do que qualquer um que eu já conheci. Vai demorar. É normal que demore. Você só tem que lutar contra seu caminho.”


Análise e Introspecção, por Willian Justen:

Você já teve a sensação de que tudo que faz não é tão bom como você gostaria que fosse? Que pessoas de 20 anos fazem coisas incríveis, que você jamais se imaginou tendo capacidade de fazer? Que por mais que você estude, vire horas e horas, nunca é o suficiente para alcançar aquilo que você acha que é o bom? E aí você começou a se desgastar, se sentir péssimo, com vontade de desistir de tudo e tentar outra coisa?
Como o Ira Glass diz, isso é normal, você tem bom gosto, você sabe olhar bons trabalhos e dizer o quanto eles são bons.
O que você não pode fazer é comparar o seu trabalho com o dos outros e se diminuir, cada um teve o seu tempo de estudo, seu tempo de aprimoramento, melhoria e principalmente, todos passaram pela mesma fase que você está passando. O que você deve fazer é identificar e entender essa fase que você está passando, pois quando ela passar, você terá superado tudo e seus trabalhos terão alcançado o nível que você tanto almejava.
Você pode pensar que eu já passei por essa fase e me sinto ótimo, que eu tenho trabalhos legais, escrevo num blog que um monte de gente já conhece, que faço palestras. Mas é aí que você se engana, todo dia eu acordo com a sensação de que tenho muito a fazer ainda, que tudo que eu já fiz e faço, ainda não valeu a pena.
Mas eu finalmente estou começando a identificar isso e ver que é só uma fase. E o que estou fazendo para me sentir melhor e para melhorar isso? Começo projetos e projetos. Tenho colocado deadlines para eles e com isso vou aprendendo coisas que eu sempre quis e que se eu não tivesse criado esses desafios, talvez nunca teria começado.
Esses projetos podem ser qualquer coisa. Sempre teve vontade de escrever um blog? COMECE! Sempre quis contribuir no github? COMECE! Sempre teve vontade de palestrar e passar o seu conhecimento para a comunidade?COMECE!
Você pode passar o resto da vida achando que não tem o “conhecimento suficiente”, que não tem a “experiência necessária”, que as pessoas vão rir de você. Ou você pode começar a se mostrar, começar a fazer aquilo que sempre quis fazer, mas tinha medo. Se suas primeiras críticas não forem boas,CONTINUE, ninguém disse que seria fácil, mas ninguém disse que seria impossível também.
Tem um artigo lindo e ótimo do Daniel Filho que é Queime seus ídolos. O que eu prefiro entender do post dele é que não é para você deixar de ter pessoas que você se espelha, mas elas são pessoas como você, elas também erraram bastante, elas passaram pelas mesmas fases que você. Não pense que elas estão lá por serem muito melhores que você, ninguém sabe pouco o suficiente. Aquele seu ídolo pode ser um gênio no JS e mal saber CSS, isso não faz dela ruim. Digo o mesmo para você, você está começando ou já está há um bom tempo na área, não se diminua, tente passar o pouco que você sabe para os outros e você verá que o pouco que você sabe já é muito para outros.
Há alguns dias eu postei na timeline do meu Facebook um vídeo bem interessante, mostrando o criador do Node.JS na sua primeira apresentação.
Um cara franzino, tímido, embolado com as palavras, que nem sabia se iria funcionar seu side project. E que hoje é só conhecido por ter ajudado no criação da ferramenta de desenvolvimento que mais cresce no mundo.
Ou seja, se você é tímido, tem vergonha de se apresentar, tem vergonha do que faz e nunca mostra nada para os outros. Perca esse medo! Contribua no Github, faça um blog, grave vídeos, se mostre! Você pode ser o mais novo grande desenvolvedor da década.

Conclusão, por Willian Justen:

Posso ter escrito um monte de baboseiras que você deve ter lido e falado super mal, mas eu coloquei aqui, eu não tive medo. Eu poderia ter guardado esses sentimentos e pensamentos só para mim. Mas uma das coisas que eu mais amo da comunidade Dev e que não vejo em nenhuma outra área é a disposição que todos nós temos de ajudar uns aos outros. Eu poderia citar aqui diversos programadores que me ensinaram muito e que me fizeram ser o que sou hoje. E você que está lendo, pode ser mais um a me ajudar, a ajudar os outros e ajudar a si mesmo.

terça-feira, 22 de março de 2016

Material para Programar - Parte 2 Editores de Texto

Ola, nesta segunda parte irei trazer as opções de Editores de Texto que recomendo. Lembrando que é opinião minha, mas eles realmente são bons rsrs.
Editores são bastante usados por programadores Python, Ruby, PHP, HTML e CSS, e muitos outros, até para quem quer programar em C/C++ no Editor e compilar manualmente no Console(prompt de comando).

Kate Editor de Texto - Originalmente ja vem em Sistemas Unix, pelo menos na distribuição Ubuntu ele ja vem instalado, mas também tem opção para download. Editor bastante personalizável, leve e pratico.

Outro ótimo Editor de Texto e que recomendo fortemente é o VS Code, da Microsoft. Ele possui inúmeras extensões, e pode baixar muito mais. Debbug, e varias outras funções. Alem de ser Multiplataforma.

E para finalizar, trago o meu Editor preferido. Aquele qual mais uso para programar em Ruby. Atom, ótimo Editor de Texto, também possuindo inúmeras extensões, Open Source e Multiplataforma.

É claro que existem muitos outros Editores e IDEs, porem trouxe para vocês as minhas recomendações e o que uso. Fiquem a vontade para escolher aquele que lhe mais agradar.

Lembrando que muita gente costuma dizer que "Para ser programador de verdade não se deve usar IDE, tem que compilar manualmente", mas eu digo a vocês que o que faz o programador bom não é a forma que ele compila ou edita seu código, e sim a sua performance e seu trabalho duro. Então sintam livres para utilizar o que bem quiser, pois se você for mais produtivo em uma IDE, vá fundo, mas se preferir compilar manualmente, nada te impede.

Desejo boa sorte a todos nessa jornada.
Bons Estudos

Material para programar - Parte 1 IDEs

Ola.
Todos as vezes se perguntam qual a melhor IDE, qual melhor Editor de Texto, o que é preciso para programar em C? E muitas outras coisas, irei tentar responder estas perguntas.

Para começar, Programação em C:
IDE que recomendo é Code::Blocks pela sua facilidade para os iniciantes, e uma plataforma bem completa.
Outra IDE tambem muito boa é a Falcon C++, recomendo caso queira algo mais leve que o Code::Blocks.

Para C++ alem das 2 IDEs acima, ainda recomendo o uso do Qt Creator para uma maior facilidade na criação de GUIs(Interface Grafica).

Quem quer se aventurar no C# não a ferramenta mais recomendada e completa que o Visual Studio.
E tambem para os usuarios de Linux / Mac OS temos o MonoDevelop. Grade ferramenta Open Source para desenvolver em Sistemas Unix.
Essas são as IDEs mais recomendadas para seu desenvolvimento.

segunda-feira, 21 de março de 2016

App Calculadora Simples - C#

Ola pessoal.
Trazendo aqui uma aplicação criada pelo Otavino Mota.
É uma calculadora simples, criada em C#. Fiz os ajustes e compilei, estrou trazendo o executável para vocês testar caso queiram. e o código fonte também.
Para fazer o download, basta entrar no link. Descompactar e executar, não precisa instalar. Se anti-vírus fazer leitura, só esperar.
link: http://www.4shared.com/rar/P0ZSjI3fba/CalculadoraSimples.html


E aqui o Código Fonte:

Form1.cs:

using System;
using System.Windows.Forms;

namespace CalculadoraSimples
{
    public partial class Form1 : Form
    {
        double total;
        double ultimoNumero;
        string operador;


        private void limpar()
        {
            total = 0;
            ultimoNumero = 0;
            operador = "+";
            mtbResultado.Text = "0";
        }
       
        private void calcular()
        {
            switch (operador)
            {
                case "+": total += ultimoNumero;
                    break;
                case "-": total -= ultimoNumero;
                    break;
                case "*": total *= ultimoNumero;
                    break;
                case "/": total /= ultimoNumero;
                    break;
            }
            ultimoNumero = 0;
            mtbResultado.Text = total.ToString();
        }

        public Form1()
        {
            InitializeComponent();

            limpar();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btLimpar_Click(object sender, EventArgs e)
        {
            limpar();
        }

        private void btNumero(object sender, EventArgs e)
        {
            if (ultimoNumero == 0)
            {
                mtbResultado.Text = (sender as Button).Text;
            }
            else
            {
                mtbResultado.Text += (sender as Button).Text;
            }

            ultimoNumero = Convert.ToDouble(mtbResultado.Text);
        }

        private void btOperador(object sender, EventArgs e)
        {
            ultimoNumero = Convert.ToDouble(mtbResultado.Text);
            calcular();
            operador = (sender as Button).Text;
        }

        private void btIgual_Click(object sender, EventArgs e)
        {
            ultimoNumero = Convert.ToDouble(mtbResultado.Text);
            calcular();
            operador = "+";
            total = 0;
        }
    }
    }


Novo Projeto - Editor de texto: Diary - C#

Ola pessoal. Estou criando um editor de texto simples em C#. De inicio fui fazendo como nas aulas pelo You Tube. Mas ainda não esta pronto, porem está funcional.
Com tempo irei incrementado funções nele.
Modifica Fonte, Modifica cor da letra. Aceita e salva em formatos RTF e TXT.
Quem quiser da olhada ou testar, so fazer download. Não precisa instalar, só descompactar e abrir.
Caso anti-virus interrompa, só esperar ele examinar e pronto, abre normal.
https://www.4shared.com/rar/ZkyV-ViJba/Diary.html





Aqui está o código fonte:

Form2.cs:

using System;
using System.Windows.Forms;
using System.IO;

namespace App2Form2
{
    public partial class Form2 : Form
    {
        public string filefilter = "Rich Text Format | *.rtf*|Texto sem Formatação|*.txt*|All Files|*.*";

        public Form2()
        {
            InitializeComponent();
        }

        private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = filefilter;
            if(ofd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                if (Path.GetExtension(ofd.FileName) == ".rtf")
                {
                    richTextBox1.LoadFile(ofd.FileName);
                }
                else if(Path.GetExtension(ofd.FileName) == ".txt")
                {
                    StreamReader sr = new StreamReader(ofd.FileName);
                    string imputline = "";
                    while((imputline = sr.ReadLine()) != null)
                    {
                        richTextBox1.Text += imputline + "\n";
                    }
                    sr.Close();
                }
                else
                {
                    StreamReader sr = new StreamReader(ofd.FileName);
                    string imputline = "";
                    while ((imputline = sr.ReadLine()) != null)
                    {
                        richTextBox1.Text += imputline + "\n";
                    }
                    sr.Close();
                }
            }

        }

        private void salvarComoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            salvar();
        }

        public void salvar()
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = filefilter;
            if (sfd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                if (sfd.FilterIndex == 1)
                {
                    //RTF
                    if (File.Exists(sfd.FileName + ".rtf"))
                    {
                        File.Delete(sfd.FileName + ".rtf");
                    }
                    richTextBox1.SaveFile(sfd.FileName + ".rtf");
                }
                else if (sfd.FilterIndex == 2)
                {
                    //TXT
                    if (File.Exists(sfd.FileName + ".txt"))
                    {
                        File.Delete(sfd.FileName + ".txt");
                    }
                    StreamWriter sw = new StreamWriter(sfd.FileName + ".txt");
                    for (int linha = 0; linha < richTextBox1.Lines.Length; linha++)
                    {
                        sw.WriteLine(richTextBox1.Lines[linha]);
                    }
                 
                }
                else if (sfd.FilterIndex == 3)
                {
                    //All Files
                    if (File.Exists(sfd.FileName))
                    {
                        File.Delete(sfd.FileName);
                    }
                }
            }
        }
        private void sairToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void novoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (richTextBox1.Text.Length > 0)
            {
                DialogResult dr = MessageBox.Show("Deseja salvar seu arquivo?", "Questão", MessageBoxButtons.YesNo);
                if (dr == System.Windows.Forms.DialogResult.Yes)
                {
                    salvar();
                }
                if (dr == DialogResult.No)
                {
                    richTextBox1.Text = "";
                }
            }
            else
            {
                richTextBox1.Text = "";
            }
        }

        private void fonteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FontDialog fd = new FontDialog();
            fd.Font = richTextBox1.SelectionFont;
            if(fd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                richTextBox1.SelectionFont = fd.Font;
            }
        }

        private void corDaFonteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ColorDialog cd = new ColorDialog();
            cd.Color = richTextBox1.SelectionColor;
            if(cd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                richTextBox1.SelectionColor = cd.Color;
            }
        }

        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (richTextBox1.Text.Length > 0)
            {
                DialogResult dr = MessageBox.Show("Deseja salvar seu arquivo?", "Salvar?", MessageBoxButtons.YesNoCancel);
                if (dr == System.Windows.Forms.DialogResult.Yes)
                {
                    salvar();
                }
                if (dr == DialogResult.Cancel)
                {
                    this.Dispose();
                }
            }
        }

        private void sobreToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Criado Por Lucas Souza!");
         
        }
    }
}




Program.cs:

using System;
using System.Windows.Forms;

namespace App2Form2
{
    static class Program
    {
        /// <summary>
        /// Ponto de entrada principal para o aplicativo.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
    }

}

sábado, 19 de março de 2016

Form Simples em C#

Programa do tipo Form em C#. Simples aplicação que digitado numero do produto, ele retorna o preço, e a foto do item, e valor total da compra(toda vez que digita numero, compra o produto.).


frmCaixa.cs :

using System;
using System.Windows.Forms;

namespace Caixa
{
    public partial class frmCaixa : Form
    {
        string[] codProd = new string[6];
        string[] nomeProd = new string[6];
        decimal[] valorProd = new decimal[6];
        decimal somaTotal;

        public frmCaixa()
        {
            InitializeComponent();
        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void pictureBox2_Click(object sender, EventArgs e)
        {

        }

        private void frmCaixa_Load(object sender, EventArgs e)
        {
            loadProducts();
            somaTotal = 0;
        }
        private void loadProducts()
        {
            codProd[1] = "12345";
            codProd[2] = "12346";
            codProd[3] = "12347";
            codProd[4] = "12348";
            codProd[5] = "12349";

            nomeProd[1] = "Grifon";
            nomeProd[2] = "BMW";
            nomeProd[3] = "Cogumelo Doido";
            nomeProd[4] = "Player Music";
            nomeProd[5] = "RSS";

            valorProd[1] = 2000.00M;
            valorProd[2] = 350.99M;
            valorProd[3] = 2.50M;
            valorProd[4] = 50.99M;
            valorProd[5] = 25.25M;
        }

        private void txtCod_textchanged(object sender, EventArgs e)
        {
            if(txtcod.Text.Length == 5)
            {
                int ind = 0;
                for(int cp = 1; cp < 6; cp++)
                {
                    if(txtcod.Text == codProd[cp])
                    {
                        ind = cp;
                    }
                }
                if(ind > 0)
                {

                    listProd.Items.Add(string.Format("#{0} - {1} - {2:c}", codProd[ind], nomeProd[ind], valorProd[ind]));
                    picProd.ImageLocation = "C:/Users/Lucas/Documents/Visual Studio 2015/Projects/Caixa/Caixa/images" + codProd[ind] + ".jpg";
                    somaTotal += valorProd[ind];
                    txtTotal.Text = Convert.ToString("R$" + somaTotal);

                    txtcod.Text = "";
                    txtcod.Focus();
                }
                else
                {
                    MessageBox.Show("Produto não encontrado.");
                }
            }
        }
    }
}





frmCaixa.cs[Design]:

Mais Calculadora em C#

Mais uma calculadora, desta vez usando Estrutura de Repetição While para manter rodando ate que o usuario peça o resultado.
Também mostra o valor atual do resultado a cada vez que é incrementado numero.


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

namespace CursoCSharp
{
    class calculadora
    {
        static void Main(string[] args)
        {
            int numero1, numero2, total;
            total = 0;
            char operacao = '+';


            while (operacao != '=')
            {
                Console.Write("Por favor digite o numero: ");
                numero1 = Convert.ToInt32(Console.ReadLine());
               

                switch (operacao)
                {
                    case '+':
                        total = total + numero1;
                        break;
                    case '-':
                        total = total - numero1;
                        break;
                    case '*':
                        total = total * numero1;
                        break;
                    case '/':
                        total = total / numero1;
                        break;
                }
                Console.WriteLine("Valor atual do numero: " + total);
                Console.Write("Por favor digite a operação: ");
                operacao = Convert.ToChar(Console.ReadLine());

            }

            Console.WriteLine("O Valor Total eh: " + total);

        }

    }
}

Calculadora em C#

Ola
Estou trazendo uma simples "mine-calculadora", feita em C#, executada em terminal(MS-DOS).
Utiliza da estrutura de decisão Switch para decidi qual operação utilizar, de acordo com a entrada do usuário.


using System;

namespace Project1
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            int a, b, c;
            char operacao;
            Console.WriteLine ("Por favor digite a operação a realizar.");
            operacao = Convert.ToChar (Console.ReadLine ());
            Console.WriteLine ("Por favor digite os numeros para realizar a operação");
            a = Convert.ToInt32 (Console.ReadLine ());
            b = Convert.ToInt32( Console.ReadLine());


            switch (operacao) {
            case '+' :
                c = a + b;
                Console.WriteLine ("O valor da soma eh: " + c);
                break;
            case '-' :
                c = a - b;
                Console.WriteLine ("O valor da subtracao eh: " + c);
                break;
            case '*' :
                c = a * b;
                Console.WriteLine ("O valor da multiplicacao eh: " + c);
                break;
            case '/' :
                c = a / b;
                Console.WriteLine ("O valor da divisao eh: " + c);
                break;

                                 }
              }
        }

  }

quarta-feira, 16 de março de 2016

Links Uteis

Estarei trazendo aqui para vocês alguns links uteis para auxiliar no aprendizado da sua linguagem de programação.

Canal do YouTube da eXcript - Tras vários cursos grátis: PHP, Python, Java, Python + SQLite, C, C++ e um pouco de Android.

https://www.youtube.com/user/excriptvideo


Canal do YouTube do DeAlunoParaAluno - Trazendo curso completo da linguagem C, muito recomendado.

https://www.youtube.com/playlist?list=PLa75BYTPDNKZWYypgOFEsX3H2Mg-SzuLW


Canal do YouTube do Marcos Castro - Trazendo curso de C++ e Haskell para iniciantes, muito bom tambem, super recomendado.

https://www.youtube.com/user/marcoscastro87/playlists


Canal do YouTube do TVGuarapa - Trazendo cursos de Linux e suas distribuições, HTML e Criação de Sites, e vários Editores de Imagens.

https://www.youtube.com/user/tvguarapa/playlists


Canal do YouTube da Bóson Treinamentos - Tras vários cursos de Computação em Geral, Python, Linux e distros, e Banco de Dados MySQL.

https://www.youtube.com/user/bosontreinamentos/playlists


Canal do YouTube do Danilo Aparecido - Trazendo projeto Torne-se um Programador, com curso de lógica de programação e introdução ao desenvolvimento Web.

https://www.youtube.com/user/Didox59/playlists


Canal do YouTube do Curso em Vídeo - Trazendo curso de Java, PHP, HTML e CSS, Logica de Programação e Branco de Dados MySQL.

https://www.youtube.com/user/cursosemvideo/playlists


Plataforma de Cursos Code Academy - Trazendo inúmeros cursos como: Python, Ruby, Java, HTML, JavaScript, JQuery, PHP, e vários cursos para usuários mais avançados como: Criação de Sites para quem ja tem básico do HTML E Css, Framework Ruby on Rails para quem já conhece Ruby, Bancos de Dados SQL, Sites interativos para quem já conhece JavaScript e JQuery, e muito mais.

https://www.codecademy.com/pt-BR


Cursos Gratuitos Online na DevMedia - Trazendo cursos de HTML, C# e Java Aplicado.

http://www.devmedia.com.br/cursos/gratuitos


Plataforma de versionamento de código Git, e onde trabalhos Open Source são realizados, e onde você pode ajudar em algum projeto e criar seus próprios  - GitHub.

https://github.com/

Paradigma de Programação Orientada a Objetos

A POO (Programação Orientada a Objetos) foi criada para aproximar o mundo virtual do mundo real.
Afinal nosso mundo real é composto de objetos.
Na POO os objetos possuem características, e interagem entre si através de "mensagens" e ações quando recebe a devida "mensagem".

A Orientação a objetos é uma maneira de programar que ajuda na organização e na resolução de problemas que enfrentamos na linguagem estruturada/procedural.
Na POO nos temos Classes, Métodos, Atributos e Herança. No qual um objeto pertence a uma classe, e recebe seus devidos atributos. Herança é quando uma Classe herda os atributos de uma classe mãe. Métodos são como funções que possuem ações para o objeto responder e realizar.

Os exemplos de linguagens com Paradigma Orientado a Objetos são muitos, mas o mais conhecidos são: Java, C++, C#, Python, Ruby, PHP, entre outros.

Eu pessoalmente Utilizo muito o Ruby, e de vez em quando dou olhada em C++.
Aqui no blog postarei sobre Ruby algumas vezes, juntamente com a Estruturada C, e quando possível postarei também C++ e talvez C# que é uma "prima" do C++.


Para Maiores informações sobre a comparação entre a Orientação a Objetos e a Programação Estruturada, visite: http://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264.

Menor número de um vetor

Um exemplo de um programa simples utilizando vetores.
Ele recebe 5 números digitados pelo usuário e retorna o menor dos números digitados.
Utiliza do laço de repetição 'For' para receber os números e para iterar pelo vetor.
Utiliza do 'If' para fazer a comparação e selecionar o menor número.

#include <stdio.h>

int main(){

int vet[5], i, menor;

    printf("Digite 5 numeros.\n");
    for(i=0; i<5; i++){
    scanf("%i", &vet[i]);}

menor = vet[0];

for(i = 0; i <= 5; i++){
    if(menor > vet[i])
    menor =  vet[i];
    }

    printf("O Menor numero digitado foi: %i", menor);


return 0;
}


Array: Vetores

Vetor é uma coleção de variáveis do mesmo tipo, que usam do mesmo nome e compartilham posições consecutivas na memoria. Cada posição de um vetor se denomina Índice e começa do '0' e vai ate 'n'(um numero determinado pelo usuário ou programador).

Um vetor pode ser de qualquer tipo de variável, seja int, float, char... entre outras.

Sua forma de iniciar é como uma variável normal, porem seu nome precede um '[]' com o numero máximo de elementos.

Ex.:

int vet[5];

vet[5] = {1, 2, 3, 4, 5};


Tambem podemos declarar desta forma:

Ex.:

int vet[5] = {1, 2, 3, 4, 5};

E desta:

Ex.:

int vet[5];

vet[0] = 1;
vet[1] = 2;
vet[2] = 3;
vet[3] = 4;
vet[4] = 5;


Observe que vai de '0' á '4'. Por isso seu ultimo índice é 'n-1'.

quinta-feira, 10 de março de 2016

GitHub - Gist

Trazendo para voces meu endereço do Gist, onde compartilho códigos para a comunidade, tanto de Ruby quanto de C e C++.

https://gist.github.com/lucassouza252

Banco Virtual em Ruby

Trazendo aqui um "Banco Virtual" escrito na linguagem Ruby.
Ele possui um menu que pode ser acessado pelas chaves numéricas de 1 a 5, e usa do loop While para ficar num menu continuo ate que o cliente escolha sair. Usei 2 arquivos, um apenas para script, e outro para interagir com pessoa.
Baseado em apenas 1 cliente.

Interação:

# encoding: UTF-8
require_relative 'ClasseAccount.rb'

puts "Ola! Bem vindo ao nosso Banco Virtual!\n\n"

continue = true

while continue

puts"Acesse atraves das chaves 1..5"
puts "1 - Cadastro do cliente"
puts "2 - Visualizar Saldo"
puts "3 - Deposito"
puts "4 - Sacar"
puts "5 - Sair"
 acesso = gets

case acesso.to_i
when 1
  puts "\nPor favor digite seu nome: "
  name = gets.chomp
  puts "Por favor digite seu saldo inicial"
  saldo = gets.chomp
    client1 = Account.new(name, saldo.to_i)
    puts "Cliente cadastrado com sucesso! Sua senha Voce ja sabe qual é."
     puts "\nDigite <s> para voltar."
     volta = gets.chomp
     if volta == 's' || volta == 'S'
       system "clear"
     end

when 2
  puts "\nDigite sua senha de 4 digitos: "
  senha = gets.chomp
  client1.display_balance(senha.to_i)
   puts "\nDigite <s> para voltar."
   volta = gets.chomp
   if volta == 's' || volta == 'S'
      system "clear"
   end

when 3
  puts "\nDigite o valor que irá depositar: "
  valor = gets.chomp
  client1.deposit(valor.to_i)
   puts "\nDigite <s> para voltar."
   volta = gets.chomp
   if volta == 's' || volta == 'S'
     system "clear"
   end

when 4
  puts "\nDigite sua senha: "
  senha = gets.chomp
  puts "Digite o valor do saque: "
  valor = gets.chomp
  client1.withdraw(senha.to_i, valor.to_i)
   puts "\nDigite <s> para voltar."
   volta = gets.chomp
   if volta == 's' || volta == 'S'
     system "clear"
   end

when 5
  puts "\nObrigado por usar nossos Serviços."
  continue = false

else
  puts "\nOpção invalida!"
   puts "\nDigite <s> para voltar."
   volta = gets.chomp
   if volta == 's' || volta == 'S'
     system "clear"
   end

end
end



Script:

# encoding: UTF-8
class Account
    attr_reader :name, :balance
  def initialize(name, balance=100)
        @name = name
        @balance = balance
  end

private
  def pin
      @pin = 1234
  end

private
  def pin_error
      return "Acesso negado: PIN incorreto."
  end

public
  def display_balance(pin_number)
      if pin_number == pin
          puts "Saldo $#{@balance}"
      else
          puts pin_error
      end
  end

public
  def withdraw(pin_number, amount)
      if pin_number == pin
         if amount > @balance
             puts "Impossivel realizar operação, valor mais alto que saldo"
         else
          @balance -= amount
          puts "Retirado $#{amount}. Novo saldo: $#{@balance}."
         end
      else
          puts pin_error
      end
  end

public
  def deposit(value)
      @balance += value
      puts "Deposito efetuado com Sucesso! Novo saldo: $#{@balance}"
  end
end

Ciclo For()

Vamos falar do ciclo For.
Do inglês 'para' ele recebe uma variável com um valor inicial, incrementa esta variável ou decrementa, ate chegar a condição colocada.
Seu formato é: for(inicio; fim; variação;){
             ação...  }

Ex.:
int i;

for(i = 0; i < 5; i++){
      printf("Ola pela %i vez(es)\n", i);



Neste exemplo o ciclo ira se repetir 5 vezes, e a ação realizada sera imprimir um Ola 5 vezes, mostrando o numero da vez, como 'i' sera incrementada, ele vai aumentando toda vez que o ciclo se repete.

sábado, 5 de março de 2016

Produto Escalar

Produto escalar, é a multiplicação de dois vetores que resulta em um escalar, ou seja, um número.
Ex.: v =(x1, y1, z1), u =(x2, y2, z2)
v * u = (x1*x2 + y1*y2 + z1*z2).

Transcrevendo isto para um algoritmo, recebendo os vetores do usuário.

#include <stdio.h>

int main(void){

int i, j, a= 0, vetorA[3], vetorB[3];

printf("Digite o valor dos vetor A:\n");

for(j=0; j<3; j++){
    scanf("%i", &vetorA[j]);
}
printf("Digite o valor do vetor B:\n");

for(j=0; j<3; j++){
    scanf("%i", &vetorB[j]);
}

for(j=0; j<3; j++){
a += vetorA[j] * vetorB[j];}

printf("O valor eh: %i ", a);
return 0;}


quarta-feira, 2 de março de 2016

Sequencia de Fibonacci

Venho trazer para vocês a famosa Sequencia de Fibonacci.
Ela consiste numa sequencia de números em que um numero é a soma dos dois anteriores.
Ex.: 0, 1, 1, 2, 3, 5, 8, 13, 21...
O algoritmo utiliza a estrutura de repetição While, e ele para a sequencia com um numero digitado pelo usuário.

#include <stdio.h>

int main(){

int num1, num2, n, num3;
num1 = 0; num2 = 1;

  printf("Sequencia de Fibonacci!! Digite o numero pra parar a sequencia.\n");
  scanf("%i", &n);

  printf("\n0, 1");
while(num2 < n){
    num3 = num1 + num2;
    printf(", %i", num3);
    num1 = num2;
    num2 = num3;
}



return 0;
}


terça-feira, 1 de março de 2016

Comando de Repetição - While

Quando vamos programar, as vezes precisamos realizar uma ação varias vezes, podendo ate ser tantas vezes que seria muito difícil fazer manualmente.
Para este e muitos outros propósitos temos a estrutura de repetição.
Ela se divide em While; For; Do... While.
Agora vamos ver sobre o While.

Do inglês 'Enquanto', ele funciona com uma condição, em quanto esta condição for verdadeira, ele realizará um loop, ou seja, uma repetição.

Seu formato é: while(condição){
                                ...comandos... }

Ex.:

int a = 10;

while( a <= 10){
     printf("%i \n", a);
     a = a + 1; }


Neste exemplo declaramos o inteiro ' a ' com valor dez e criamos o laço de repetição com condição de que enquanto ' a ' for menor igual a dez, print na tela o inteiro ' a ' e acrescentar +1 ao inteiro ' a '.