SlideShare uma empresa Scribd logo
1 de 10
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- 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.
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.
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]
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]
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.
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
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.
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
joane

Mais conteúdo relacionado

Mais procurados

Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
AlbertoVach
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
nataferraz
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem c
Marcia Santana
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Kratos879
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 

Mais procurados (19)

Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem c
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - Compiladores
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Compiladores 1
Compiladores 1Compiladores 1
Compiladores 1
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 

Destaque

The lost Sol keys' mystery
The lost Sol keys' mysteryThe lost Sol keys' mystery
The lost Sol keys' mystery
Vicky Milioti
 
Ann Gallagher_Resume
Ann Gallagher_ResumeAnn Gallagher_Resume
Ann Gallagher_Resume
Ann Gallagher
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
vangogue
 

Destaque (13)

Encuesta Condiciones de Vida, 2014
Encuesta Condiciones de Vida, 2014Encuesta Condiciones de Vida, 2014
Encuesta Condiciones de Vida, 2014
 
La religión hebrea
La religión  hebreaLa religión  hebrea
La religión hebrea
 
Relaciones Públicas 2.0
Relaciones Públicas 2.0Relaciones Públicas 2.0
Relaciones Públicas 2.0
 
The lost Sol keys' mystery
The lost Sol keys' mysteryThe lost Sol keys' mystery
The lost Sol keys' mystery
 
Ann Gallagher_Resume
Ann Gallagher_ResumeAnn Gallagher_Resume
Ann Gallagher_Resume
 
Preeclapsiapdf
PreeclapsiapdfPreeclapsiapdf
Preeclapsiapdf
 
SYN256_2014
SYN256_2014SYN256_2014
SYN256_2014
 
Право інтелектуальної власності як вклад до статутного капіталу юридичної особи
Право інтелектуальної власності як вклад до статутного капіталу юридичної особиПраво інтелектуальної власності як вклад до статутного капіталу юридичної особи
Право інтелектуальної власності як вклад до статутного капіталу юридичної особи
 
Захист прав інтелектуальної власності у Індії. На що треба звернути увагу, пр...
Захист прав інтелектуальної власності у Індії. На що треба звернути увагу, пр...Захист прав інтелектуальної власності у Індії. На що треба звернути увагу, пр...
Захист прав інтелектуальної власності у Індії. На що треба звернути увагу, пр...
 
Afghanistan culture
Afghanistan cultureAfghanistan culture
Afghanistan culture
 
Fisica(presion,aire,luz,sonido,temperatura y calor).
Fisica(presion,aire,luz,sonido,temperatura y calor).Fisica(presion,aire,luz,sonido,temperatura y calor).
Fisica(presion,aire,luz,sonido,temperatura y calor).
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Resume 2015
Resume 2015Resume 2015
Resume 2015
 

Semelhante a joane

Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
slashmelhor
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
ssuser059c2c1
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
zedaesquina98
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Luiz Arthur
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
Ray Fran Pires
 

Semelhante a joane (20)

Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdf
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
Apostila c
Apostila cApostila c
Apostila c
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
 
Aula 01 algoritmo
Aula 01 algoritmoAula 01 algoritmo
Aula 01 algoritmo
 
PROJETO MODELO editado.docx
PROJETO MODELO editado.docxPROJETO MODELO editado.docx
PROJETO MODELO editado.docx
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveis
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 

joane

  • 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