terça-feira, 14 de julho de 2015

Inicio da Jornada!!!


Bom, lembram que falei na primeira postagem sobre programação que queria aprender algum dia? Estou tendo a oportunidade de ser um verdadeiro Desenvolvedor de software! Estou participando de uma seletiva de uma Competição Técnica promovida pelos SENAIS, de todo o país, e estou aprendendo de modo autodidata mas com algumas orientações, a fim de ser selecionado. De toda forma é um grande aprendizado! e Hoje vou começar a trilhar esse treinamento, vamos começar pela Lógica de programação que estudaremos via Portugal e via C# uma linguagem de programação adotada nessa competição e a que estarei trabalhando. o C# de modo breve é uma linguagem de programação criada para ter o poder do C,com a simplicidade do Visual Basic.


É necessário ter ciência de que tudo começa com a Lógica de programação, pois é ela que permite definir a sequência lógica para o desenvolvimento. é por assim dizer o estudo de como construir uma sequência lógica para resolução de tarefas ou problemas. A essa sequência lógica de resolução chamamos de Algoritmo.
Inicialmente, iremos entender o que é um algoritmo, e quais os exemplos que vivenciamos todos os dias que são algoritmos.
Isso para que na minha visão, seja mais fácil de entender que quando precisamos fazer algo na vida real, qualquer coisa que seja, precisamos de uma "lógica" pra isso! Ou seja, por exemplo para se fazer um bolo não podemos "pular" certas etapas, e que se algo acontece com o preparo, temos que saber que "decisão" tomar diante do acontecimento, da "condição". Resumindo para que realmente nossos ingredientes todos se tornem um bolo, é necessário que executemos certos procedimentos com eles em uma determinada ordem, com determinadas condições e com determinados ingredientes. Em seguida, mudaremos o foco dos algoritmos do dia a dia para algoritmos na computação e programação, veremos os tipos existentes de algoritmos e alguns exemplos práticos.

O que é algoritmo?

Um algoritmo é uma sequência de instruções, de passos, que seguimos para solucionar um ou mais problemas, ou até mesmo para realizar tarefas do dia dia.
Um algoritmo não é necessariamente um programa computacional, pode ser passos que iremos tomar para realizar uma determinada tarefa.
O algoritmo deve sempre chegar a um resultado satisfatório, ou seja, ao resultado final esperado, caso não chegue, o mesmo não pode ser considerado finalizado.
Exemplos: Trocar uma lâmpada, preparar o café, Fazer o bolo : ) ...

Vamos ver como seriam os passos pra realizar estas tarefas:


Fazer o Café:






Trocar uma Lâmpada:









Fazer o Bolo:









Como exemplos de Algoritmos podemos citar também as operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. Outros ainda seriam os manuais de aparelhos eletrônicos, como o manual de um telefone celular, que explica passo a passo de como realizar uma ligação por exemplo.

Mediante os exemplos apresentados anteriormente, fica mais fácil compreender a definição de um algoritmo, caracterizando-se por ser um conjunto de instruções objetivas.

Quando pensamos na definição de Algoritmo, podemos pensar em uma infinidade de coisas complexas, o mesmo se trata de um conjunto de instruções objetivas que tem como objetivo resolver um problema. Não quer dizer que não existam Algoritmos complexos! mas isso vai depender da complexidade do problema em questão.
Todos os algoritmos vistos até agora fazem parte do nosso dia a dia, são Algoritmos que frequentemente nos vemos executar. Deixando um pouco do cotidiano de lado, iremos agora entrar de cabeça no mundo computacional. Let's go!!!

Representações de um Algoritmo:

Agora que entendemos do que se trata um Algoritmo veremos as formas utilizadas para o representar. Temos várias formas de representar os Algoritmos, desde as mais simples, representadas por formas, até as mais detalhistas, contendo regras de implementação. (Exigindo uma determinada sintaxe).
Os dois tipos mais usados de representação são o Fluxograma, e o Pseudocódigo, sendo o último o mais usado no ensino de Lógica de Programação.(O Pseudocódigo trata-se de um meio didático de se aprender a programar; não se consegue construir nenhum software via pseudocódigo.)  É então através de uma linguagem de programação que implementamos nossos Algoritmos de forma que os computadores os entendam e os executem, para enfim realizarmos a tarefa ou solucionarmos o problema para o qual o Algoritmo foi criado.

Fluxograma:

Representado por formas, tornam o entendimento de determinado algoritmo mais simples, pois uma figura é mais clara que várias palavras.
É definido por uma série de símbolos, em conjunto com desenhos geométricos que representam os passos do algoritmo, tais como: ínicio, entrada e saída de dados, tomada de decisões, estruturas de repetição e final do algoritmo.

O círculo alongado é utilizado para dar início ou terminar um algoritmo (sob a representação de fluxograma). 
O retângulo é utilizado para executar uma instrução. (sob a formaa representação de fluxograma)
O losango é utilizado para tomadas de decisão em um algoritmo.( sob a representação de fluxograma)





Pseudocódigo:

Diferente do fluxo grama, o pseudocódigo, também conhecido como portugol ou português estruturado, Utiliza PDL - Program Design Language (Linguagem de Projeto de Programação), Ou seja, é uma espécie de narração do que o programa deve fazer. Para isso, utilizaremos o pseudocódigo em um programa chamado VisuAlg, que abordaremos em nossa próxima lição.
O pseudocódigo é a base  que todos devem ter para aprender uma linguagem de programação, pois é ele que "traduz" a linguagem falada (humana) para linguagem de programação (computacional). Ele nos dá uma noção de como seria representar nosso algoritmo por meio de código, como traduzir nosso pensamento para o modo como "pensa" o computador.
Lembrando que um pseucódigo trata-se de um meio didático de se aprender a programar ; não se consegue construir nenhum software via pseudocódigo. No caso é após o entendimento de como funciona as estruturas básicas de qualquer programa, começamos a estudar uma linguagem de programação na qual vai ser possível realmente criarmos um programa. Claro elas possuem suas peculiaridades,alguns nomes próprios de comandos, determinada sintaxe, mas todas sem exceção possuem as estruturas básicas aprendidas no Portugol (Pseudocódigo).












quarta-feira, 1 de abril de 2015

Iniciando na Programação

Minha introdução ao mundo da computação começou passando pela Manutenção de computadores Desktop, depois Redes de Computadores, atuando na área de Suporte nível 1 isto é, o 1º Contato do usuário com que poderá ser feito por telefone, e-mail, portal ou chat. A solução para o usuário poderá ser nesse 1º contato, como também o chamado poderá ser direcionado para outros grupos solucionadores e será monitorado até o seu encerramento, algumas vezes  atendimento presencial de hardware e software. Isto no âmbito Empresarial, pois atuei na sede da Eletrobrás Distribuição Alagoas como Jovem Aprendiz, o que nos restringe muito a certas atividades até por conta de que estamos em fase de experiência. Recentemente estou cursando Eletrônica no Instituto Federal de Alagoas (IF-AL), e em ambos os casos senti a necessidade de ter ao menos algumas noções do mundo de programação. Hoje em dia com a grande comunidade que é a internet podemos explorar possibilidades ao limite, inclusive aprender sobre programação. Existem cursos presenciais e a distância, alguns sites que cedem aulas gratuitas com metodologias aparentemente muito didáticas, simples e funcionais, muito bacanas, que prendem a atenção na forma que conduzem tudo com muita naturalidade, isso sem falar nos vários canais presentes no Youtube, uma dádiva! então quem sabe pretendo sim, quem sabe fazer um curso na área antes de uma graduação de nível superior, mas no momento vou "meter a cara" como dizem e tentar aprender o que puder de programação gratuitamente. Após diversas pesquisas no meu entendimento tudo deve começar pela lógica de programação, pois ela organiza as ideias do que será feito, de acordo com o problema a ser resolvido, de acordo com a necessidade e traça um plano para realizá-lo, ou seja "Qual é o problema em questão?" "Requisitos para realização (Do que preciso? ou seja, com quais dados e informações irei trabalhar? que conhecimento preciso ter especificamente para realização deste software?, Qual o objetivo final do software para que sirva de resposta ao problema? (Sim, pois o problema pode ser resolvido de diversos modos, ou seja, do modo de programar do programador em questão, da linguagem usada, então deve-se estabelecer um critério para "validar" para dizer se o software resolve ou não o problema, se ele chegar ao objetivo pensado ele resolve. Muito embora possam existir melhorias, melhores práticas, análise de brechas de segurança no código e etc...), o que usarei?( São os recursos computacionais que serão usados e o porquê, se por conta de um melhor conhecimento seu em uma linguagem específica ou a escolha de uma linguagem X para essa aplicação por recursos específicos destas e etc..., como deve ser executado? (a ordem em que as tarefas devem ser executadas para uma plena realização da tarefa proposta para resolução do problema)".
 Depois implementaremos usando alguma linguagem de programação todo o nosso projeto, tudo em que pensamos ser necessário, mas agora no "idioma" da máquina dando a ela instruções exatas que a levem a fazer o que queremos que ela faça, para então solucionar o problema, em outras palavras iremos usar as ferramentas que uma determinada linguagem de programação nos fornece para implementar o algoritmo que criamos usando a lógica de programação. O que a linguagem de programação faz é mediar é ser a "mediadora" entre a linguagem humana e a linguagem da máquina, sim! pois a língua da máquina é ainda mais baixo nível, ela funciona com base nos sistemas lógicos digitais ou discretos, aqueles que só admitem dois estados ou 1 ou 0, Verdadeiro e Falso, Ligado e Desligado... e tudo isso é feito através de pequenas tensões elétricas.