1) As linguagens de programação servem para comunicar instruções ao computador de forma que ele possa executar cálculos e tarefas. Existem linguagens de baixo e alto nível.
2) Linguagens de alto nível são mais próximas da linguagem humana e intuitivas para programadores, como C++ e Java.
3) A programação estruturada estabelece regras para desenvolvimento de algoritmos usando sequência, seleção e iteração.
1. 1-O que é linguagem de programação
Podemos imaginar o computador como uma super calculadora, capaz
de fazer cálculos muito mais rápido que nós, mas para isso devemos
dizer para o computador o que deve ser calculado e como deve ser
calculado. A função das linguagens de programação é exatamente
essa, ou seja, servir de um meio de comunicação entre computadores
e humanos.
Existem dois tipos de linguagens de programação: as de baixo
nível e as de alto nível. Os computadores interpretam tudo como
números em base binária, ou seja, só entendem zero e um. As
linguagens de baixo nível são interpretadas diretamente pelo
computador, tendo um resultado rápido, porém é muito difícil e
incômodo se trabalhar com elas.
Existem algumas linguagens de programação que não necessitam de
compiladores, como o PHP, uma linguagem dedicada à produção de
websites dinâmicos, como o InfoEscola. As instruções em PHP são
compiladas e executadas ao mesmo tempo.
Exemplo de código PHP (alto nível)
print ("Bem vindos visitantes do InfoEscola!");
print (" Vamos contar até 50:");
for($x=1;$x<=50;$x++) {
print $x;
print " ";
}
if(4 == 2) {
print ("Fim do mundo! 4 é igual a 2!");
} else {
print ("Ufa! 4 é diferente de 2");
}
?>
Cada linguagem de programação é diferente da outra, contendo
palavras-chave próprias. Exemplos de linguagens de alto nível
são C++, Java, C#, Delphi (Pascal), PHP, Visual Basic, etc.
2. 2- O que é linguagem de Alto Nível e exemplos
Antes de entrar nesse tema, é necessário entender o que é uma
linguagem de programação. A gente ouve por aí: Java, SQL, C, C++,
Assembly, Basic e muitas outras palavras relacionadas às linguagens
de programação. Podemos dizer que a linguagem de programação é
uma forma de determinarmos como um dispositivo deve trabalhar. É
como se déssemos ordens para esses dispositivos que podem ser
simples, como por exemplo, um carregador de pilhas ou mais
complexos como um computador.
Cada linguagem de programação foi criada com algum objetivo,
como por exemplo, facilidade de escrita, facilidade de manutenção,
melhora da performance do dispositivo, etc.
Quando falamos em níveis, podemos dizer que uma linguagem de
alto nível está muito mais próxima do programador do que do
dispositivo, ou seja, é uma linguagem muito mais intuitiva. Existem
linguagens onde é feito um diagrama e esse diagrama que nada mais
é do que um desenho é convertido para uma linguagem de
programação pré-selecionada. Essa é uma linguagem bem mais
amigável ao programador devido à sua facilidade de entendimento.
Um exemplo de linguagem de alto nível é a linguagem SDL
(Specification Design Language).
3- Programações Estruturadas
A programação estruturada estabelece uma disciplina de desenvolvimento de
algoritmos que facilita a compreensão de programas através do número
restrito de mecanismos de controle da execução de programas. Qualquer
algoritmo, independentemente da área de aplicação, de sua complexidade e da
linguagem de programação na qual será codificado, pode ser descrito através
destes mecanismos básicos.
O princípio básico de programação estruturada é que um programa é
composto por blocos elementares de código que se interligam através de três
mecanismos básicos, que são seqüência, seleção e iteração. Cada uma destas
construções tem um ponto de início (o topo do bloco) e um ponto de término
(o fim do bloco) de execução.
3. Seqüência implementa os passos de processamento necessários para
descrever qualquer programa. Por exemplo, um segmento de programa da
forma ``faça primeiro a Tarefa a e depois a Tarefa b'' seria representado por
uma seqüência de dois retângulos. A mesma contrução em pseudo-linguagem
seria denotada pela expressão das duas tarefas, uma após a outra.
[fluxograma]
[pseudo-linguagem]
Figura: Construção estruturada: seqüência.
Seleção especifica a possibilidade de selecionar o fluxo de execução do
processamento baseado em ocorrências lógicas. Há duas formas básicas de
condição. A primeira forma é a construção IF, que permite representar fluxos
da forma ``se a condição lógica x for verdadeira, faça a Tarefa a; senão (isto é,
se a condição x for falsa), faça a Tarefa b.'' Na representação em fluxograma,
as duas setas que saem do losango de condição recebem rótulos T e F para
indicar o fluxo de execução quando a condição especificada é verdadeira ou
falsa, respectivamente. O retângulo sob a seta rotulada T normalmente é
denominado o bloco then da construção, enquanto que o outro retângulo é
denominado bloco else.
[fluxograma]
[pseudo-linguagem]
Figura: Construção estruturada: seleção IF.
4. A outra forma de seleção estende o número de condições que podem ser
avaliadas para definir o fluxo de execução. Esta construção, SWITCH permite
representar fluxos da forma ``se a variável y tem o valor 1, faça a Tarefa a;
se y tem o valor 2, faça a Tarefa b; se tem o valor 0, faça a Tarefa c; para
qualquer outro valor, faça Tarefa d.''
Observe que a construção SWITCH não é essencial, uma vez que ela pode ser
representada em termos da seleção com IF, como em
Entretanto, a utilização de estruturas SWITCH simplifica a expressão de
situações que ocorrem frequentemente em programas -- por exemplo,
selecionar ações dependendo de uma opção escolhida em um menu -- sem ter
que recorrer ao aninhamento excessivo de condições da forma IF. No entanto,
essa condição está restrita a condições lógicas envolvendo exclusivamente
testes de igualdade.
[fluxograma]
[pseudo-linguagem]
5. Figura: Construção estruturada: seleção SWITCH.
Iteração permite a execução repetitiva de segmentos do programa. Na forma
básica de repetição, WHILE uma condição lógica é verificada. Caso seja
verdadeira, o bloco de tarefas associado ao comando é executado. A condição
é então reavaliada; enquanto for verdadeira, a tarefa é repetidamente
executada.
[fluxograma]
[pseudo-linguagem]
Figura: Construção estruturada: repetição WHILE.
Uma variante dessa construção é apresentada na, onde inicialmente a tarefa é
executada e apenas então a condição de repetição é avaliada; quando a
condição torna-se verdadeira, a iteração é encerrada.
[fluxograma]
[pseudo-linguagem]
6. Figura: Construção estruturada: repetição REPEAT UNTIL.
Tipicamente, a estratégia de desenvolvimento top-down é utilizada na
descrição algorítmica de procedimentos. Neste caso, um retângulo ou uma
linha de pseudo-código pode descrever uma tarefa tão complexa quanto
necessário, sendo que esta tarefa pode ser posteriormente descrita em termos
de outro(s) fluxograma(s) ou pseudo-código(s). Em geral, são aplicados tantos
refinamentos quantos forem necessários até atingir um ponto em que uma
tarefa possa ser facilmente descrita em termos das construções suportadas pela
linguagem de codificação.
4- Programações Lineares
A programação linear, no campo da programação matemática, é uma área da
pesquisa operacional com vasta aplicação em apoio à decisão. O termo
“programação”, tanto linear quanto matemática, não tem a ver diretamente
com programação de computadores, ou linguagem de programação. Este termo
tem origem em suas aplicações, originalmente desenvolvido para resolver
problemas industriais. Assim, o termo “programação” da programação linear
está relacionado ao planejamento de recursos escassos visando atender as
condições operacionais. Estas, por sua vez, são representadas por equações e
funções lineares.
A aplicação da programação linear em apoio à decisão ocorre na condição que
se decide para atingir um objetivo. Este, por sua vez, é resultante da
alocação ótima dos recursos. Por isso caracterizamos a programação linear
como uma técnica de otimização. No problema de otimização em siderurgia, por
exemplo, buscamos determinar a alocação ótima dos recursos de produção de
forma a atender as limitações de capacidades de cada usina e maximizar o
lucro resultante. Tanto a função de maximizar o lucro quanto as restrições de
capacidade de cada planta são representados por funções lineares. Neste
exemplo, o tomador de decisão pode escolher diversas combinações de alocação
de seus produtos, no entanto apenas uma combinação é a mais lucrativa. Esta
e a combinação ótima que maximiza o lucro, uma função linear, do problema
de programação linear.
7. Programação linear: equações e funções são lineares
Embora originalmente o tempo “programação” de programação linear não tem
a ver diretamente com programação de computadores, os problemas reais não
podem ser resolvidos manualmente, dada a dimensão de problemas reais. Com
a evolução da tecnologia de hardware e software, os algoritmos de
programação linear são implementados em uma linguagem computacional para
viabilizar a resolução de problemas reais em menor tempo. A programação
linear, dessa forma, teve seu desenvolvimento junto com o desenvolvimento
dos computadores, a partir da década de quarenta.
A programação linear é uma das técnicas mais usadas dentre outras grandes
áreas da pesquisa operacional, como simulação, teoria de filas, programação
dinâmica, teoria dos jogos. O problema de programação linear foi inventado
pelo matemático Russo L. Kantorovich em 1939. L. Kantorovich e T. Koopmans
ganharam o prêmio Nobel por suas contribuições à teoria de alocação ótima de
recursos. No entanto, o algoritmo mais utilizado para resolver problemas de
programação linear é o simplex e suas variações (primal simplex, dual simplex,
simplex revisado) formalizado por George Dantzig em 1947 enquanto
trabalhava no projeto de computação científica de otimização SCOOP (Scientific
Computation of Optimal Programs) na RAND (Research and Development)
Corporation para a Força Aérea Americana.
Diversas áreas utilizam a programação linear para apoio a decisão. Dentre as
áreas de aplicação estão: (i) planejamento logístico de frotas e rotas, (ii)
planejamento da produção de longo, médio e curto prazo, (iii) decisão em
escolha de mix de produtos em manufatura, (iv) estratégias operacionais em
8. mineração, siderurgia, petroquímicas, agricultura, (v) decisão de localização de
facilidade ou instalação de fábricas ou centros de distribuição, (vi) decisão em
finanças na escolha da melhor carteira deINVESTIMENTOS , entre outros.
T. Koopmans, G.Dantzig e L. Kantorovich
5- Programações Orientadas a Objetos
Orientação a objetos em uma definição formal, é um paradigma de análise, projeto e
programação de sistemas de software baseado na composição e interação entre diversas
unidades de software chamadas de objetos. Ou seja, é um modelo utilizado no
desenvolvimento de software onde trabalhamos com unidades chamadas objetos (que
serão explicados mais adiante). Este modelo visa, principalmente, organização,
desempenho, sustentabilidade e reutilização do software.
Como veremos, a orientação a objetos visa um pensamento o mais próximo possível da
vida real. Ao programar orientado a objetos não teremos apenas funções que são
chamadas uma seguida da outra, mas sim objetos que
possuem estado e comportamento.
Tudo isso será melhor detalhado no decorrer dos capítulos do livro. A Programação
Orientada a Objetos (POO), foi criada para tentar aproximar o mundo real e o mundo
virtual: a ideia fundamental é tentar simular o mundo real dentro do computador. Para isso,
nada mais natural do que utilizar objetos, afinal, nosso mundo é composto de objetos,
certo?
Na Programação Orientada a Objetos, o programador (você) é responsável por moldar o
mundo dos objetos, e definir como os objetos devem interagir entre si. Os objetos
"conversam" uns com os outros através do envio de mensagens, e o papel principal do
programador é definir quais serão as mensagens que cada objeto pode receber, e também
qual a ação que o objeto deve realizar ao receber cada mensagem.
9. Isso possibilita a criação de códigos com baixo acoplamento (explicado mais adiante) e
que podem ser facilmente reutilizados, o que são alguns dos principais motivos para se
programar orientado a objetos.
O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay, autor da
linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas
das idéias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar
estas idéias foi a linguagem Simula 67, criada por Ole-Johan Dahl e Kristen Nygaardem
1967. Entretanto só veio a ser aceito realmente nas grandes empresas de
desenvolvimento de Software por volta dos anos 90.
Alguns exemplos de linguagens orientadas a objetos modernas utilizadas por grandes
empresas em todo o mundo são: Java, C#, C++, Object Pascal (Delphi), Ruby, Python,
Lisp, etc.
A maioria das linguagens que adotaram o paradigma da orientação a objetos adotaram
apenas parcialmente, dando espaço para o antigo modelo procedural de programação,
como acontece na linguagem C++, por exemplo, onde temos a possibilidade de usar POO,
mas a linguagem não força o programador a adotar este paradigma de programação,
sendo ainda possível programar da forma procedural tradicional. Este tipo de linguagem
segue a idéia de utilizar uma linguagem previamente existente como base e adicionar
novas funcionalidades a ela. Outras são mais "puras", sendo construídas do zero focando-
se sempre nas idéias por trás da orientação a objetos como é o caso das linguagens
Smalltalk, Self e IO, onde tudo é orientado a objetos.
6- Referencias
http://www.infoescola.com/informatica/o-que-sao-linguagens-de-
programacao/
http://www.infoescola.com/engenharia-de-software/linguagem-de-
programacao-de-alto-nivel/
http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node7.html
http://www.marcogandra.com.br/2012/08/o-que-e-programacao-linear.html
http://pt.wikibooks.org/wiki/Programa%C3%A7%C3%A3o_Orientada_a_
Objetos/Introdu%C3%A7%C3%A3o