Vamos Programar? – Introdução à Programação #3
Paradigmas de Programação
O mundo está constantemente a evoluir: desde o mais pequeno inseto à espécie Humana. Evolução, mudança, futuro - são das palavras que mais são ouvidas atualmente.
A tecnologia tem revolucionado o mundo das mais diversas formas. Se quer entrar no mundo da tecnologia e deixar a sua marca, pode começar aqui.
Antes de começar a aprender C, iremos abordar alguns temas importantes. Hoje vai aprender o que realmente é uma linguagem de programação e conhecer os paradigmas de programação mais utilizados.
Visualize este vídeo no Youtube
Linguagem de programação
O conceito linguagem de programação ainda não foi abordado. Antes de continuar, é fundamental que compreenda o que realmente é uma linguagem de programação. Uma linguagem de programação é uma forma padronizada para comunicar instruções a um computador ou seja, através de diversas regras semânticas e sintáticas, podemos instruir o computador a fazer algo.
Paradigmas de Programação
Todas as linguagens de programação têm várias características dentro delas os paradigmas de programação. Paradigmas são modelos ou padrões logo, paradigmas de programação são formas de estruturar o código.
Cada linguagem de programação pode adoptar um ou mais paradigmas de programação. As que adoptam mais do que um paradigma chamam-se multi-paradigma.
Paradigma imperativo
O paradigma imperativo concentra-se num estado (que são as variáveis) e ações (comandos) que modelam o estado.
Pode ser comparado ao modo modo imperativo da linguagem humana visto que é criado para ordenar a realização de ações.
Exemplos (de linguagens de programação imperativas) : C, Java, C#, Pascal.
Paradigma procedimental
O paradigma procedimental permite a reutilização de código sem o copiar através da utilização de funções e procedimentos (que falaremos mais à frente na saga). De certa forma, com este paradigma, podemos "reciclar" código. A maioria das linguagens de programação são procedimentais.
Paradigma estruturado
Uma linguagem de programação estruturada é aquela em que todos os programas podem ser reduzidos a três estruturas: sequência, decisão e repetição (iteração).
Sequência
Nesta estrutura as tarefas são executadas de forma linear, ou seja, uma após a outra. Exemplo:
Acordar; Vestir; Tomar o pequeno-almoço; Ir trabalhar;
Fluxograma correspondente: Este é um exemplo de uma sequência. Em muitas linguagens de programação, os comandos/ações terminam com ponto e vírgula pois estas permitem que os comandos sejam colocados em linha da seguinte forma:
Acordar; Vestir; Tomar o pequeno-almoço; Ir trabalhar;
A utilização do ponto e vírgula é, normalmente, obrigatória quando existem várias instruções numa única linha. Linguagens de programação como Java, C# e C obrigam ao uso do ponto e vírgula em todas as instruções independentemente se estão em linha ou não.
Decisão
Neste tipo de estrutura, um determinado trecho de código é executado ou não dependendo do resultado de um teste lógico. Abaixo encontra vários exemplos práticos.
Exemplo 1:
O exemplo abaixo descreve a condição/decisão "se Acordar, vou Trabalhar, caso contrário, não vou Trabalhar" através de pseudocódigo.
if "Acordar" then "Trabalhar" else "Não trabalhar" endif
Fluxograma correspondente:
O pseudocódigo acima já não está em português e já se assemelha ao que irá visualizar nas linguagens de programação. Sempre que aparecerem termos em inglês no código relacionado com a sintaxe, encontrará a sua tradução mais abaixo. Neste caso:
- if → se
- then → então
- else → caso contrário
- endif (end if) → fim do if
Agora, e novamente relacionado com a decisão, repare que o trecho de código "Trabalhar" só será executado se o indivíduo "Acordar". Caso contrário, o trecho "Não trabalhar" será executado. Abaixo pode visualizar mais exemplos.
Exemplo 2:
Dói-me a cabeça. Se doer muito pouco, vou trabalhar. Se doer pouco, tomo um comprimido e vou trabalhar. Se doer muito, vou ao médico e falto ao trabalho.
case "Dor de cabeça" when "muito pouco" then "trabalhar" when "pouco" then "tomar comprimido"; "trabalhar" when "muito" then "ir ao médico"; "não trabalhar"
Este é mais um exemplo mas utilizando diferentes comandos. Este trecho poderia ser também escrito através de comandos if/else da seguinte forma:
if "Dor de cabeça" if "muito pouco" then "trabalhar"; elseif "pouco" then "tomar comprimido"; "trabalhar"; else if "muito" then "ir ao médico"; "não trabalhar"; endif endif
Em fluxograma:
- case → caso
- when → quando
- else if → caso contrário se
Iteração
Neste tipo de estrutura, também conhecido como repetição, um trecho de código será repetido um número finito de vezes dependendo do resultado de um teste lógico.
Exemplo 1:
Abaixo encontra a repetição "não saio de casa enquanto não estiver vestido" em formato de pseudocódigo para melhor análise:
do { "não sair de casa"; } while ( "não estou vestido" )
Ou seja, pode ler da seguinte forma: fazer x enquanto y.
Novo termo:
- do → fazer
Exemplo 2
Enquanto estiver a Dormir, não me vou Vestir.
while ( "Durmo" ) "Não me visto";
Ou seja, enquanto acontece algo, faço outra coisa.
Exemplo 3
Lavo os dentes 20 vezes.
for ( i = 0; i < 20; i++ ) "Lavar os dentes"
Ou seja, enquanto não acontece qualquer coisa, faço qualquer coisa. Em fluxograma:
- for → para/enquanto
Exemplo 4
Para cada dente, lavo-o muito bem.
for each "dente" in "boca" "Lavar muito bem"
Ou seja, para cada item do conjunto, fazer qualquer coisa. Novos termos:
- each → cada
- in → em
Paradigma Declarativo
O Paradigma Declarativo contrasta com o Imperativo pois é capaz de expressar a lógica sem descrever como o fluxo de comandos funciona, ou seja, apenas diz ao computador o que fazer e não como fazer.
Um excelente exemplo de uma linguagem que utiliza este paradigma é Prolog, muito utilizado na área de inteligência artificial.
Paradigma Funcional
O Paradigma Funcional engloba todas as linguagens de programação que utilizam funções matemáticas. Estas linguagens de programação são muito utilizadas no campo da matemática.
Exemplos: Matlab, Wolfram Language/Mathmatica/M, B.
Paradigma Orientado a Objetos
A Programação Orientada a Objetos permite a criação de objetos com base em classes. Estes objetos são instâncias dessas classes e possuem todos os atributos e funções presentes nas classes em questão.
Este paradigma é muito extenso e tem muita informação que mais à frente irá ser abordada. Atualmente, existem muitas linguagens que utilizam este paradigma.
Exemplos: Java, C++, C#, PHP.
Os paradigmas de programação não se limitam aos 6 (seis) apresentados pois existem inúmeros outros. Estes são os mais utilizados. Existem ainda paradigmas que são baseados noutros, contrastando com outros, etc.
Agradeço à Ana Narciso pela disponibilização de alguns exemplos utilizados na secção "Paradigmas de Programação".
Mais uma vez, gostávamos de saber a sua opinião. Caso tenha alguma dúvida, pode sempre utilizar os comentários para colocar a questão. Caso o faça, pedimos que utilize a keyword [DUVIDA] no início do seu comentário.
Esta saga |
Henrique Dias |
|
Mais episódios: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13][12] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23][24] |
Este artigo tem mais de um ano
Muito bem escrito..
Obrigado.
Eu se tivesse começado a programar por aqui já tinha desistido… Se calhar devias aguçar primeiro a boca fazendo um hello world e depois um programa que recebe um input e faz algo com ele.
Porque estas coisas todas só fazem sentido depois de saberes o que é programar e de a pessoa experimentar.
Só a minha opinião.
De qualquer maneira o que estás a explicar está bem explicado para o publico alvo e simples.
Espero que continues.
… ao ler este comentário fez-me lembrar que o meu filho domina de longe melhor os “meandros” da net e jogos e afins do que eu… mas não percebe nada de pastas, ficheiros, hardware software discos rigidos, s.o. … há “mundos” que para serem entendidos não se devem avançar caminhos! de qualquer forma é só a minha opinião…
Em breve… em breve… tudo a seu tempo. Iremos fazer isso mas daqui a umas duas semanas.
Para a semana iremos falar da história do C e ficava melhor falar primeiro dos paradigmas que existem 🙂
Obrigado =D
Muito bom, nice work 🙂
Obrigado =D
Muito bom!
Obrigado. 🙂
Java paradigma imperativo? Sim é possível mas é uma linguagem OOP. E depois dizer que o paradigma funcional engloba todas as linguagens que utilizam funções matemáticas? Paradigma funcional não tem nada a ver com isso. Basta ver o Haskell que é funcional puro (quase) e não utiliza funções matemáticas (não com o propósito escrito no post).
Acho que existem bastantes erros neste artigo, devia haver um maior cuidado. No entanto continuem o bom trabalho porque são iniciativas destas que são necessárias 🙂
Sim, Java é multi-paradigma e inclui o imperativo.
“In computer science, functional programming is a programming paradigm, a style of building the structure and elements of computer programs, that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data.”
in Wikipedia
Sim, em relação à utilização e às linguagens, existem várias. Só mencionámos uma utilização. E… por fim… Obrigado 🙂 Todos os comentários são bem-vindos.
E????
Uma linguagem orientada é um nivel acima em termos de paradigma.
O C++ que é uma linguagem compativel com C (note-se que C e C++ são linguagens distintas), são ambos imperativos e o C++ é orientado a objectos.
Um paradigma não é mais que referente ao raciocinio que se tem a programar, e.g., imperativo agora faz isto a seguir faz isto, etc.
Orientado a objectos apesar de ser considerado paradigma refere-se a como estruturamos a legebilidade de um código em grafos de objectos.
Muito bem escrito portanto continua assim Henrique, mas permite só que deixe dois pontos rápidos 🙂
=====
Primeiro: o ciclo FOR tem os parâmetros trocados pois deveria ser – for([variáveis a inicializar]; [condição]; [incrementação/decrementação]) – podendo até nem haver variáveis a inicializar, ou seja – for(; [condição]; [incrementação/decrementação]) – mas caso te baseies numa linguagem que permite a forma como escreveste a função, podes saltar para o próximo passo 😀
=====
Segundo: é possóvel criar variáveis dentro dos ciclos de repetição com o mesmo nome que variáveis globais, portanto podemos ter uma variável chamada xpto no nível global e outra chamada xpto dentro de um ciclo WHILE ou FOR que as duas não se misturam 🙂
=====
Continua a trazer mais disto, nunca é mau relembrar C 😉
Oops! Obrigado pelo aviso do primeiro ponto. =D E obrigado pelo resto.
Excelente trabalho!!
Venham os próximos…
Obrigado.
Vamos lá ver se percebi:
do {
“refresh”;
} while ( “não saiu novo artigo vamos programar?” )
Olá Angelo!
Sim, está correto. Nesse caso, seria sempre feito um “refresh” pois a condição só é verificada no final.
Se fizesse:
while (“não saiu novo artigo vamos programar?”) {
“refresh”;
}
O código “refresh” só iria executar caso a condição fosse verdadeira.
Cumps,
Muito bom. Conciso e muito claro.
Espero pela próxima lição.
Obrigado.
void BomArtigo(); // 😛
Eheh 🙂
Iniciativa é boa, mas penso que o ritmo e duração dos vídeos e um pouco curto, pelo menos para vídeos semanais ou perto disso.
Quero dar os parabéns para esta rubrica e aguardo pelos “novos episódios”
Obrigado 🙂
Bom trabalho!
Deu para relembrar o que já aprendi em tempos na faculdade.
Eheh =D
Muito bom como sempre!
Henrique, o petiz que ensina gente grande 😉
Ahah =P Obrigado 🙂
Boa tarde.
Estou a tentar aprender a programar, mais concretamente em VB.
Tenho-me guiado por alguns manuais, sites e videos do youtube mas a verdade é que a meio dos exemplos perco-me e nao faço ideia de onde surgir determinado modulo ou variável.
Sabem de sites de cursos online que sejam decentes e tenham um bom curso de Visual basic ?
Abraço e os meus parabéns ao Henrique Dias por esta excelente iniciativa !
Antes de mais nada, obrigado 🙂 Sinto muito, mas como não conheço a linguagem, não posso recomendar nenhum site/livro.
Aqui, no Pplware, existem vários tutoriais sobre Visual Basic. Pode ver estes artigos aqui.
Cumprimentos 🙂
Tbm estou a aprender VB em Aplicações Informaticas B ahah :p