Buscar

Aula 8 - Paradigmas de Linguagens de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Paradigmas de linguagens de programação
Aula 8: Comandos e modularização
Apresentação
Percebemos, ao longo das duas últimas aulas, a importância de um entendimento apropriado sobre os tipos de dados e a
forma como as linguagens de programação (LPs) implementam suas possíveis expressões. Destacaremos nesta aula que
elas também executam comandos que serão traduzidos em ações ao hardware, ou seja, controlam o computador.
Pontuaremos ainda que tais comandos são típicos de linguagens imperativas, sendo interpretados como se fossem
ordens ao PC. Também conheceremos os comandos primitivos realizados pelas LPs, desde os de atribuição, que
possuem diferentes recursos, até os de desvios incondicionais e escapes.
Objetivos
Listar as classi�cações e os tipos de comandos de uma LP;
Identi�car a implementação dos comandos de atribuição nas LPs;
Declarar a inclusão de comandos de entrada e saída e de desvio incondicional nas LPs.
Classi�cações de uma linguagem de programação
Nosso campo de estudos volta-se para os comandos
conforme a classi�cação das linguagens imperativas e
orientadas a objeto, já que a implementação dos métodos
das classes usa os comandos destes tipos de linguagem.
Sabemos que as imperativas concentram-se em comandos
de atribuição de valores a variáveis e estruturas que
controlam o �uxo de execução do programa por meio da
simulação do funcionamento da máquina de Von
Neumman, base da arquitetura dos computadores.
 Figura 1: Representação da arquitetura de Von Neumman. | Fonte: Wikipedia.
Uma LP imperativa precisa dos seguintes comandos para ser minimamente efetiva em seus objetivos:
Atribuição
Permite que os valores de variáveis sejam atualizados;
Seleção
Permite diferentes caminhos no �uxo de controle;
Repetição
Permite que comandos possam se repetir ao longo do
programa.
As LPs costumam oferecer algumas alternativas para esses tipos de comandos, além de outros que as complementam.
Percebemos, assim, o poder deles para formar estruturas que controlam o hardware, passando-lhe as instruções necessárias a
�m de que o programa atinja o seu objetivo. Comandos são classi�cados em:
Clique nos botões para ver as informações.
Não podem ser subdivididos em outros comandos. O comando primitivo mais relevante para uma LP imperativa é o
comando de atribuição de valores a variáveis.
a) Primitivos (ou simples) 
Os compostos podem sofrer essa subdivisão, possuindo outros comandos sob o seu controle (escopo de ação).
b) Compostos (ou estruturados) 
Exemplo
As diferentes implementações para os de repetição (iteração), que executam um ou mais comandos repetidamente, controlando
o início e a parada da repetição.
http://estacio.webaula.com.br/cursos/go0138/aula8.html
javascript:void(0);
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Tipos de comandos
Em 1990, Watt, em seu livro Programming languages: concepts and paradigms, classi�cou os comandos das LPs. Utilizaremos
uma adaptação desta classi�cação, dividindo-os da seguinte maneira:
Atribuições (primitivo);
Entrada e saída (primitivo);
Desvio incondicional (primitivo);
Sequenciais (composto);
Condicionais (composto);
Iterativos (composto).
 Figura 2: Classificação dos comandos das LPs. | Fonte: (WATT, 1990)
Comandos de atribuição
Estes comandos atribuem o valor a uma variável, que pode ser uma constante, o resultado de uma expressão, outra variável ou
o resultado da execução de uma função. Cada LP usa um símbolo para designar a operação de atribuição.
Exemplo
C, C++ e Java, entre outros, usam o símbolo =. Outras LPs, como Ada, Pascal e Modula-2, usam :=, pois consideram que a
igualdade deve ser usada como operador relacional, podendo confundir um programador aprendiz. Avaliando a expressão Num =
Num+1, ela, do ponto de vista matemático, parece um absurdo, mas, como atribuição, simboliza a adição de uma unidade a Num.
Supondo que Num seja igual a 6, a expressão Num = Num + 1 retornará o valor 7 para Num.
Segundo Sebesta (2018), há diferentes formas de uma LP implementar uma atribuição. Apresentaremos a seguir cinco
maneiras de fazê-lo:
1. Atribuição simples;
2. Atribuição múltipla;
3. Atribuição condicional;
4. Atribuição composta;
5. Atribuição unária;
Leiamos, com atenção, o texto a seguir com o detalhamento de cada atribuição.
Leitura
Leia o texto Formas de atribuição.
Comandos de entrada e saída
Os comandos de entrada e saída implementados nas LPs permite que sejam obtidos dados dos dispositivos de entrada
(mouse, teclado, arquivos, scanner e outros exemplos) e exibidos nos dispositivos de saída (tela, impressora etc.).
Leia o texto, a seguir, com mais detalhes sobre ambos.
Leitura
Comandos de entrada e comandos de saída.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Desvios incondicionais
A programação estruturada trouxe consigo algumas diretrizes ao programador para deixar a escrita de programas mais legíves
duráveis. Uma delas é evitar a todo o custo o uso de comandos de desvios incondicionas, ou seja, a instrução que vai desviar o
�uxo de controle para o local indicado. A�nal, isso pode desestruturar a lógica do programa.
Entre as implementaçõs possíveis de desvio incondicional em uma LP, destacam-se:
Desvios irrestritos;
Escapes.
Leiamos, com atenção, sobre as implementações citadas.
javascript:void(0);
javascript:void(0);
Leitura
Desvios irrestritos e escapes.
Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online
Atividade
1. Sobre conceitos, tipos e classi�cações de comandos, avalie as assertivas:
I. Os comandos de uma LP são classi�cados em simples e complexos.
II. Os comandos de atribuição e de entrada e saída são simples.
III. Os comandos de decisão e repetição são compostos ou estruturados.
IV. Os comandos primitivos não podem ser subdivididos, sendo atômicos. Já os complexos possuem um ou mais comandos
sob sua ação.
Com base em sua análise, marque a opção que apresenta apenas as assertivas corretas.
a) II e III
b) II
c) III
d) I, II e III
e) I, II, III e IV
javascript:void(0);
2. Sobre os comandos de atribuição implementados pelas LPs, acompanhe e avalie a execução de um trecho de código na
linguagem C:
int main(void)
{
int iQtdSegundos, iHoras, iMinutos, iSegundos;
printf("\nEntre com o valor em segundos:");
scanf("%d", &iQtdSegundos);
/* divisao de inteiros */
iHoras = iQtdSegundos / 3600;
iMinutos = (iQtdSegundos - (iHoras*3600)) / 60;
iSegundos = (iQtdSegundos - (iHoras/3600)) % 60;
printf("\nHora convertida %02d:%02d:%02d", iHoras, iMinutos, iSegundos);
return 0;
}
Diga qual a �nalidade do programa. Considerando que seu dado de entrada seja 1850, quais serão as saídas dele?
3. No que se refere exclusivamente às expressões compostas, avalie as assertivas a seguir:
I. A atribuição sempre é a associação de um valor a uma e somente uma variável.
II. A diferença entre as duas atribuições à variável b em: b=a++ e b=++a é que, naquela, “a” é atribuída à variável “b” e, em
seguida, incrementada de uma unidade, enquanto nesta atribuição o valor de “a” é incrementado de uma unidade e depois
atribuído a “b”.
III. A atribuição soma+= num equivale à soma=soma+num, ou seja, a variável soma é incrementada de num.
IV. Em todas as LPs, o comando de atribuição é o mesmo e representado pelo símbolo “=”.
Está correto apenas o que se a�rma em:
a) I, II, III e IV
b) II e III
c) II
d) I, II e III
e) III
4. Leia as duas assertivas a seguir:
I. O desvio condicional deve ser usado sempre que possível...
porque
II. O desvio incondicional desloca a execução para qualquer parte do programa especi�cado por um rótulo.
Analisando a relação de causa e efeito entre as assertivas I e II, responda:
a) As duas assertivas são verdadeiras, e a II justifica a I.
b) As duas assertivas são verdadeiras, mas a II não justifica a I.
c) As duas assertivas são falsas.
d) A assertiva I é verdadeira; a II, falsa.
e) A assertiva I é falsa; a II, verdadeira.
Notas
Comandos1
Comandos são instruções do programa cujo objetivo é atualizaro estado das variáveis em memória e/ou controlar o �uxo de
execução de um programa.
Título modal 1
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ�ca e de impressos.Referências
BR-C. Comando exit. Disponível em: http://www.br-c.org/doku.php?id=exit. Acesso em: 28 ago. 2019.
BR-C. Comando return. Disponível em: http://www.br-c.org/doku.php?id=return. Acesso em: 28 ago. 2019.
GHEZZI, C.; JAZEYERI, M. Conceitos de linguagens de programação. 2. ed. Rio de Janeiro: Campus; 1987.
MDN WEB DOCS. Operadores de atribuição. Disponível em: https://developer.mozilla.org/pt-
BR/docs/Web/JavaScript/Reference/Operators/Assignment_Operators. Acesso em: 28 ago. 2019.
SEBESTA, R. W. Conceitos de linguagem de programação. 11. ed. Porto Alegre: Bookman, 2018.
TUCKER, A. B. Programação: princípios e paradigmas. 2. ed. Porto Alegre: AMGH, 2010.
VAREJÃO, F. M. Linguagem de programação: conceitos e técnicas. Rio de Janeiro: Elsevier, 2004.
WATT, D.A. Programming languages: concepts and paradigms. New York: Prentice-Hall, 1990.
WEB DROPS. Java – o operador de atribuição composto. 25 out. 2007. Disponível em:
https://webdrops.wordpress.com/2007/10/25/java-o-operador-de-atribuicao-composto/. Acesso em: 28 ago. 2019.
Próxima aula
Comandos compostos ou estruturados implementados pelas LPs.
Explore mais
Operadores de atribuição;;
Compostos de Python;;
Lei da criminalidade informática (Lei nº 109/91);;
Java – o operador de atribuição composto;;
Conceitos �nais do For e comandos Break e Continue – laços de repetições;;
Comando Exit.;
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);
javascript:void(0);

Continue navegando