Mostrando postagens com marcador Programação. Mostrar todas as postagens

Algoritmo e Lógica de Programação - Conceitos Básicos Parte 2

Dando sequência ao último post, chegamos a parte de representações.
A representação do algoritmo pode ser feita de duas maneiras:

Em forma de descrição narrativa, ou seja, quando queremos descrever um algoritmo de forma que o receptor da informação entenda do assunto, mesmo não conhecendo de algoritmos, porém neste tipo de descrição temos uma imprecisão e uma falta de confiabilidade no entendimento do algoritmo, além de termos uma descrição muito grande para dizer pouca coisa.
Ex: Dobro do número.

*Digitar número.
*Gravar variável.
*Pegar o número e multiplicar por 2.
*Gravar o resultado em outro variável.
*Mostrar o resultado da aplicação.

Fluxograma: Desta forma usamos simbolos universais que nos ajudaram a descrever o que o algoritmo que dizer, esta forma é mais lógica e simples, porém pode causar certa dúvida a quem desconhece do assunto.

Algoritmo e Lógica de Programação - Conceitos Básicos Parte 1

O computador é uma das maiores e mais úteis invenções da humanidades, quem diria que uma máquina de fazer contas (com alta probabilidade de erro), se tornaria no que é atualmente, uma ferramenta imprescindível para a sociedade, uma ferramenta que revolucionou a comunicação e a liberdade de expressão e expansão do conhecimento. Um ponto fundamental tanto em casa como no ambiente corporativo.

Pensar que esta é uma máquina, que sem nós é incapaz de tudo, e todo seu desenvolvimento foi devido a nós, através da programação, em um nível tão "baixo" que o próprio hardware pode entender. Então se desenvolveu o sistema operacional, um software capaz de "falar" com as peças, para que em conjuto todas funcionassem corretamente, dando assim utilidade a grande "calculadora", mas o computador superou as expectativas, deixou de servir apenas para fazer contas, novas funcionalidades foram se integrando, e depois de algum tempo surgiu a chamada interface gráfica, que era "interativa", fácil e deixava o velho terminal cada vez mais para trás.

Surgiram também os sistemas operacionais, Unix, Mac OS, Windows, GNU/Linux e derivados, então a programação passou a ser desenvolvida sobre a plataforma em si (sobre o sistema operacional), dando origem a uma série de programas, com diversas utilidades.

Bom voltando para o assunto do semestre, este semestre nossa turma esta começando com programação, algoritmos, lógica etc, até o final do semestre, segundo nosso excelentissímo professor Fauzi Shubeita estaremos programando em delphi, claro que agora é no papel mesmo...

Resolvi então postar aqui os primeiros mandamentos, em razão da importância do assunto (programação) já que esta deu vida ao nossos PCs (Macs Também).

*Algoritmo > Define-se por uma sequência lógica de passos que serão fielmente executados pelo computador para que se tenha o resultado esperado.

Exemplo

Primeiro >>> Levantar-se da cama
Segunda >>> Ir ao Banheiro
Terceira >>> Trocar de Roupa
Quarta >>> Sair de Casa

Quando dizemos que estes passos tem que ser uma sequência, queremos dizer que estes passos devem ser executados um após ao outro, porque ninguém vai ao banheiro pela manhã sem levantar da cama, e ninguém sai de casa sem se vestir.
O raciocínio lógico é fundamental, primário, é essencial.

Características:

# Partir de um ponto inicial e chegar a um ponto final;
#Não ser ambíguo;
# Poder receber dados externos e ser capaz de retornar resultados aos mesmos;
#Ter todas as etapas alcançaveis em algum ponto do programa.

Por hoje é só, t+

Linguagens de Programação

Retirado do livro "Linux Entendendo o Sistema" por Carlos E. Morimoto.

Os computadores são funcionários quase perfeitos. Fazem tudo o que mandamos, não reclamam, não se importam de trabalhar até tarde da noite, não cobram hora extra nem tiram férias. Mas, em compensação, também não pensam. Para que façam qualquer coisa é preciso explicar tudo com os mínimos detalhes e na língua deles.
Considerando que tudo o que os computadores conseguem entender são seqüências intermináveis de números binários, fornecer estas "instruções" pode ser muito penoso para um ser humano. Você consegue se imaginar lendo um manual de 5.000 páginas e decorando um a um centenas de códigos binários que representam as instruções do processador?
Se os programadores precisassem programar diretamente em binários, decorando seqüências como 10111011101101101110110011001010 para cada instrução do processador e para cada endereço de memória a ser acessado, provavelmente não teríamos mais programadores; já estariam todos loucos.
Para facilitar as coisas, começaram a ser desenvolvidas as linguagens de programação, que diferem na sintaxe e recursos, mas têm um ponto em comum, que é a existência de um compilador. Seja programando em C, ou seja em Kylix, você usará um editor para escrever seu programa, respeitando as regras da linguagem escolhida e em seguida rodará o compilador, que interpretará os comandos que formam o seu programa e os transformará em um arquivo binário, que contém as instruções binárias que são entendidas pelo processador.
No Windows não temos muito contato com código fonte, pois os programas são quase sempre distribuídos apenas em formato binário, que você não tem como alterar. Mas, no caso do Linux, temos a possibilidade de baixar o código fonte de praticamente todos os programas que usamos no dia-a-dia. Muita gente aprende a programar fuçando no código fonte de algum programa que conhece bem, começando com pequenas traduções e mudanças, e acaba entendendo bem a sintaxe da linguagem e vários dos truques usados. Depois de cada rodada de alterações, é possível compilar todo o código, abrir o programa e verificar de que forma elas alteraram o programa final.
A vantagem de usar linguagens de programação é que o desenvolvedor passa a trabalhar com instruções como "if", "else", etc. além de todas as facilidades oferecidas pela linguagem ao invés de gigantescos endereços binários. Sem dúvida muito mais simples.
Existem diversas linguagens de programação. Meu objetivo aqui é dar algumas noções básicas sobre as peculiaridades e utilidade de algumas delas
Para começar, existe uma linguagem "básica" para quem quer aprender a programar, ensinada nos cursos de lógica da programação, o pseudocódigo. Ele não é uma linguagem "de verdade", mas sim uma maneira mais simples para aprender os fundamentos usados em todas as linguagens de programação.
Podemos começar com um exemplo simples. Vamos fazer um programa capaz de tomar uma decisão fácil. Ele pergunta a nota do aluno e diz se ele passou ou não. Para um ser humano isso seria um problema muito elementar, mas para o computador as coisas não são assim tão simples. Lembre-se de que ele é burro e precisa ser orientado passo a passo. Nosso programinha em pseudocódigo poderia ficar assim:

escreva: "Qual é a nota do aluno?"
leia nota
se nota maior ou igual a sete
então:
escreva "Ele passou"
senão:
escreva: "Ele foi reprovado"
fim do se
fim do programa


Este programinha perguntaria a nota e, com base no número que for digitado, avisaria se o aluno passou ou não.
Ele poderia ser escrito em qualquer linguagem, mas a lógica seria a mesma. De acordo com os recursos oferecidos pela linguagem escolhida, ele poderia ter uma interface simples em modo texto, uma interface gráfica mais trabalhada, aparecer no meio de uma pagina web e assim por diante. O mesmo programinha escrito em shell script, a linguagem mais elementar que temos no Linux, onde utilizamos comandos de terminal, poderia ficar assim:

echo "Qual é a nota do aluno"
read nota
if [ "$nota" -ge "7" ]
then
echo "Ele passou"
else
echo "Ele foi reprovado"
fi

As linguagens de programação são conjuntos de padrões e comandos que você pode usar para dar ordens para nossos amigos burros.
Assim como nas línguas faladas, existem diferenças de sintaxe, gramática e existem linguagens mais simples ou mais complicadas de aprender e linguagens mais adequadas para cada tipo de tarefa a realizar. Veja alguns exemplos de linguagens de programação:

- Assembly: O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. A idéia do Assembly é usar um comando em substituição a cada instrução de máquina.

Em se tratando de programação, o fato de uma linguagem ser "de baixo nível", não significa que ela é ruim, mas apenas que ela manipula diretamente as instruções e endereços de memória e, por isso, é mais trabalhosa e voltada para o desenvolvimento de aplicativos otimizados.

- Fortran: O Fortran foi uma das primeiras linguagens de alto nível da história. Enquanto o Assembly é chamado de linguagem de baixo nível, por nele utilizarmos diretamente as instruções e endereços do processador e memória, numa linguagem de alto nível temos várias funções prontas, o que facilita muito a programação, mas em compensação torna em muitos casos o programa maior e mais pesado, já que o compilador jamais conseguirá gerar um código tão otimizado quanto um programador experiente conseguiria.
Fortran é a contração de "Formula Translator". A primeira versão do Fortran foi criada no final da década de 50, mas a linguagem começou a ser usada em larga escala a partir da metade da década de 60, quando surgiram várias versões diferentes. Atualmente o Fortran é ainda usado em diversos aplicativos relacionados a engenharia. Ele é também ensinado em várias universidades, como uma forma mais prática de ensinar lógica da programação.

- Pascal: O Pascal é outra linguagem de alto nível, criada durante a década de 60. O Pascal é uma linguagem bastante estruturada, com regras bastante rígidas, o que a torna difícil de usar. Hoje em dia o Pascal original é pouco usado, mas seus descendentes diretos como o Free Pascal evoluíram muito. O próprio Kylix (junto com o Delphi) é uma evolução do Pascal.

- Cobol: Cobol significa "Common Business Oriented Language". Esta linguagem foi desenvolvida no final da década de 50, com o objetivo de ser uma plataforma de desenvolvimento para aplicações bancárias e financeiras em geral. Comparado com o Pascal e o Assembly, comuns na época, o Cobol é uma linguagem relativamente amigável, o que garantiu uma grande aceitação. Até hoje esta linguagem é usada em muitos sistemas bancários, o que explica a grande procura por programadores experientes nesta linguagem na época do bug do ano 2000.

- C: O C foi desenvolvido durante a década de 70, mas ainda é largamente utilizado. A grande vantagem do C é permitir escrever tanto programas extremamente otimizados para a máquina, como seria possível apenas em Assembly, e ao mesmo tempo vir com várias funções prontas, como uma linguagem de alto nível, que podem ser utilizadas quando não for necessário gerar um código tão otimizado.
A maior parte dos programas Linux e quase todo o Kernel foram escritos em C, o que explica o porquê do sistema ser tão rápido em algumas tarefas.

- C++: O C++ mantém os recursos do C original, mas traz muitos recursos novos, como recursos orientados a objetos, sendo também bem mais fácil de utilizar. O C++ é bastante usado atualmente para desenvolver muitos programas para várias plataformas. Ele é, por exemplo, a linguagem oficial do KDE e da maioria dos programas para ele.

- Python: O Python é uma linguagem de programação com uma sintaxe muito simples e intuitiva e ao mesmo tempo bastante poderosa, que pode ser usada por toda classe de usuários. É uma boa opção de linguagem para quem está começando a programar. No Kurumin, você pode abrir o interpretador do Python em Iniciar > Sistema > Desenvolvimento.

- Java: O Java é uma linguagem de programação multiplataforma, com uma sintaxe até certo ponto parecida com o C++, porém com bibliotecas diferentes. Os programas em Java podem ser executados em qualquer sistema operacional, desde que o interpretador esteja instalado.