• Nenhum resultado encontrado

aula05 plp

N/A
N/A
Protected

Academic year: 2021

Share "aula05 plp"

Copied!
87
0
0

Texto

(1)

PARADIGMAS DE LINGUAGENS

Prof. Paulo Malcher

prcmalcher@gmail.com

https://sites.google.com/site/professorpaulomalcher/

(2)

Organização de computadores

• Os computadores executam milhões de operações a velocidades incríveis.

• As operações são organizadas por meio de um conjunto de instruções.

Esse conjunto de instruções é o programa.

(3)

Organização de computadores

• O processador interage com outros componentes.

(4)

Linguagens de programação

• É necessário que os programas sejam escritos em uma linguagem que o computador entenda.

Essa linguagem é chamada linguagem de

máquina.

0100 1111 1010 0110

• É pouco intuitiva para os seres humanos.

• Foram desenvolvidas linguagens de mais alto-nível.

(5)

Linguagens de programação

• O código escrito em linguagem de alto nível é convertido em linguagem de máquina pelo compilador ou interpretador.

(6)

Linguagens de programação

Compiladas: todas as instruções são

traduzidas para instruções de baixo nível antes da execução do programa.

Interpretadas: as instruções são traduzidas

para instruções de baixo nível à medida que vão sendo executadas.

(7)
(8)

Métodos de programação

• A elaboração de programas complexos requer a utilização de um método sistemático de programação que permita obter programas confiáveis, flexíveis e eficientes. Salvetti (1998, p. 5)

• Sugere-se adotar um método de programação em etapas.

(9)

Etapas de programação

1. análise do problema a ser resolvido;

2. projeto do programa que resolverá o problema, incluindo a elaboração de um algoritmo e a definição das estruturas de dados a serem utilizadas;

3. implementação (codificação) do programa;

(10)

Algoritmo

• O que é um algoritmo?

• é a descrição de uma sequência de passos

ordenadas e finita que deve ser seguida para a

realização de uma tarefa.

• é uma descrição de como realizar uma tarefa independente da linguagem/hardware.

• Não se preocupa com detalhes de implementação em uma linguagem.

(11)

Pseudocódigo

• Faz uso de uma notação baseada em linguagem natural.

Um algoritmo é composto por um nome, as

variáveis e o bloco principal.

nome do algoritmo

variáveis

(12)

Tipos de dados

• Os tipos abstratos de dados, ou,

simplesmente, tipos de dados, definem quais tipos de informações podem ser processadas pelo computador.

(13)

Estruturas de controle

• Define a forma que as instruções são executadas.

Estrutura de sequência: uma instrução após a

outra.

Estrutura de seleção: há a necessidade de tomar

uma decisão, de acordo com determinadas condições.

Estrutura de repetição: quando há a necessidade

(14)

Funções e procedimentos

Função: é um módulo que sempre retorna uma

resposta a quem chamou. ex:

x := sqrt (4) //retorna a raiz-quadrada

Procedimento: não retorna nenhuma resposta.

ex:

(15)

PARADIGMA DE

(16)

Características

• Foi um dos primeiros paradigmas criados e muito utilizado até hoje na computação.

• É estruturado com base em métodos.

• Apóia-se no conceito de estado de um programa, que é a situação momentânea das variáveis, e que podem ser alteradas pelos métodos.

(17)

Vantagens

• Os programas gerados são eficientes.

• Fácil modelagem para aplicações do mundo real.

• Capacidade de modularização do código-fonte.

(18)

Desvantagens

• Problemas de legibilidade do código.

• Maior possibilidade de introdução de erros durante o processo de manutenção.

• O programador especifica como fazer para obter os resultados.

(19)

Características

• Suporta execução sequêncial de instruções.

• Suporta especificação de métodos.

• Suporta especificação do tipo de parâmetros e variáveis.

• Permite chamar métodos em módulos distintos do programa.

(20)

Modularização

• O uso de métodos permite a modularização, que consiste no uso de métodos com interfaces bem definidas e que atendam a determinadas funcionalidades da aplicação.

(21)
(22)

Estrutura geral de um programa

• De maneira geral, um programa em linguagem imperativa é organizado em duas regiões:

• Área de declaração (métodos, variáveis)

(23)

Estrutura de um Programa

• Cabeçalho

• Área de declarações

(24)
(25)

Cabeçalho

• utilizada para se fazer a identificação do programa com um nome;

é atribuído pela instrução program seguida de um nome e um símbolo ponto-e-vírgula (;) no final;

• exemplo

(26)

Área de declarações

• utilizada para validar o uso de qualquer tipo de identificador que não seja predefinido;

subdividida em sete sub-áreas: uses, label,

const, type, var, procedure e function;

var é utilizada na declaração das variáveis que

serão utilizadas durante a execução de um programa;

(27)

var – exemplo

var NOME : string; IDADE : integer; ALTURA : real;

ou

var A, B, C : integer;

(28)

Corpo do Programa

esta área tem início com a instrução begin e é finalizada pela instrução end.

begin

instruções; (...)

end.

• Nesta área, poderão existir, dependendo da necessidade, vários blocos.

(29)

Exemplo

program ADICIONA_NUMEROS; var X : integer; A : integer; B : integer; begin readln(A); readln(B); X := A + B; writeln(X); end.

(30)

Variáveis e Constantes

• Identificadores; • Palavras Reservadas; • Comentários; • Tipos de Dados; • Variáveis; • Constantes; • Exemplo.

(31)

Identificadores

• Iniciar sempre por uma letra (a - z , A - Z) ou um

underscore ( _ );

• O restante do identificador deve conter apenas letras,

underscores ou dígitos (0 - 9);

• É sugestivo que tenha até 255 caracteres, sendo que os 63 caracteres sejam significativos.

• Válidos

• Soma_Total, MaiorValor, Media1, _Media • Inválidos

(32)
(33)

Comentários

• São textos escritos dentro do código-fonte para explicar ou descrever alguns aspectos relativos ao mesmo.

• Podem ser colocados em qualquer lugar do programa;

• Envolvendo o texto entre chaves “{..}” ou entre “ (* .. *)”.

(34)

Tipos de Dados

• Inteiros • Reais • Caracteres • Lógicos var nome : string[50];

nota1, nota2 : integer; media : real;

(35)
(36)

Exercício - 1

Dado um número inteiro positivo n, calcular a soma dos 4 primeiros números naturais posteriores ao n.

(37)

Variáveis

• Armazena temporariamente as informações de um programa.

• Um ou mais caracteres

• Primeiro caractere não poderá ser um número, sempre deverá ser uma letra

• Não poderá possuir espaços em branco

• Não poderá ser palavras reservadas a uma instrução ou identificador de uma linguagem de programação

• Não poderá ser usado outros caracteres que não sejam letras, número ou caractere underscore “_“

(38)

Declaração de Variáveis

Var

(39)

Variáveis

• É um valor que não pode ser alterado durante a execução do programa;

• Seu tipo é definido por seu conteúdo;

• São valores fixos, estáveis dentro de um programa.

(40)

Declaração de Constantes

const

identificador = expressão; identificador = expressão; ...

(41)

Comando de Atribuição

• Permite fornecer um valor a uma certa variável onde o tipo dessa informação deve ser compatível com o tipo da variável.

• Sintaxe:

(42)

Units

• As Units são um conjunto de rotinas prontas para serem usadas. Uma Unit é uma biblioteca de funções e procedimentos. A unit mais usada é a CRT que possui a maior parte das rotinas e variáveis de geração de som, controle de vídeo e teclado.

• Uses

(43)

Comando Readln

• Leva os dados digitados no teclado à memória principal, armazenando-os nas variáveis especificadas na lista de identificadores.

Sintaxe:

(44)

Comando Write e Writeln

• Envia dados especificados na lista de identificadores para um dispositivo de saída:

impressora, vídeo.

Write – mantém o cursor na mesma linha após

a impressão

Writeln – leva o cursor para a linha seguinte,

coluna 1, após a impressão.

Sintaxe:

Write (< lista de identificadores e/ou constantes e/ou expressões >) ; Writeln (< lista de identificadores e/ou constantes e/ou expressões >) ;

(45)

Dinâmica - Algoritmos

Calcule 2²; Calcule 5³; Etc; Dê soro a cada 1h; Dê o remédio 2 vezes ao

dia; Alimente-o bem; Etc;

...Readln (n); Writeln (n*n);

Readln (n); Write (n*n*n);....

...veja o sistema tem que fazer esses cálculos e me mostrar em forma de

relatório;

Vai ter que mostrar na tela quanto eu tenho na minha

(46)

Exercício - 2

• Dado uma sequência de 4 números inteiros positivos n, mostrar os seguintes calculos:

1º n: multiplicar por 5 e somar com o dobro do resultado;

2º n: somar com o quadrado de n; 3º n: mostrar n menos o 2º n;

(47)

Exemplo

program Area_Circulo;

{ Programa para calcular a área de um círculo. }

const

PI = 3.141519265;

var

Area, Comprimento, Raio : real;

begin

writeln( ´Digite o Raio : ´ ); readln( Raio );

Area := PI * Raio * Raio;

Comprimento := 2 * PI * Raio; writeln( ´Área = ´, Area );

writeln( ´Comprimento da Circunferencia = ´, Comprimento );

(48)

Operadores e Expressões

• Prioridade das Operações

• Tipos de Expressões • Tipos de Operadores • Operador de Atribuição • Operadores Aritméticos • Operador de Concatenação • Operadores Relacionais • Operadores Lógicos • Funções Pré-definidas

(49)
(50)

Tipos de Expressões

Numérica

• Quando os seus operandos são numéricos (inteiros ou reais) e o resultado também é um valor numérico;

Literal

Quando os seus operandos são literais do tipo string e o resultado também é um valor literal;

• Só existe um único operador para se usar em expressões literais  Concatenação ( + );

(51)

Tipos de Expressões

Boolena

• Quando seu resultado é do tipo boolean (TRUE ou FALSE), podendo seu operando ser de qualquer tipo de dados.

(52)

Tipos de Operadores

• Operador de Atribuição • Operadores Aritméticos • Operador de Concatenação • Operadores Relacionais • Operadores Lógicos

(53)
(54)
(55)
(56)
(57)
(58)
(59)
(60)
(61)
(62)
(63)

Comando Clrscr

• Limpa o vídeo, colocando o cursor na linha 1,

coluna 1.

Sintaxe: Clrscr;

(64)

Comando Gotoxy

• Posiciona o cursor no vídeo na coluna e na linha indicada no comando. O vídeo é dividido

em 80 colunas e 25 linhas.

Sintaxe: Gotoxy (< col >, < lin >);

(65)

Tabulação dos dados de saída

• Coloca-se “:n” após a variável onde n é o deslocamento a partir da posição corrente do cursor. Para valores reais, podemos determinar a quantidade de casas decimais que serão exibidas, colocando-se mais uma sequência “:n”.

(66)

Estruturas de Decisão

• A instrução IF..THEN

• A instrução IF...THEN...ELSE

(67)

Estruturas de Repetição (Loops)

• Instrução FOR

• Instrução WHILE...DO

(68)

Estruturas de controle

SELEÇÃO I

if condicao then begin

//caso condição verdadeira end;

(69)

Estruturas de controle

SELEÇÃO II

if condicao then begin

//caso condição verdadeira end

else begin

//caso condição falsa end;

(70)

Estruturas de controle

SELEÇÃO III

case condicao of ‘valor1’: begin end; ‘valor2’: begin end; else: begin end;

(71)

Estruturas de controle

• ** Obs.: O comando antes do else não possui “;” porque else é uma extensão da instrução If .. then, sendo assim o final da condição somente ocorre após o processamento da instrução else.

(72)

Estruturas de controle

REPETIÇÃO I

For

• Repete a execução um número finito de vezes, pois possui limites fixos.

(73)

Estruturas de controle

REPETIÇÃO I

for i:= valor_inicial to valor_final do

begin

//bloco de código end;

(74)

Estrutura de Repetição

REPETIÇÃO II

• While…do

• Consiste numa estrutura que permite executar diversas vezes um mesmo trecho do algoritmo, porém sempre verificando antes de cada execução se a condição para a repetição é verdadeira, pois só executa um determinado conjunto de instruções enquanto a condição verificada for verdadeira. Quando a condição se torna falsa, a execução é desviada para fora do laço.

(75)

Estruturas de controle

REPETIÇÃO II

while (condicao) do begin //bloco de código end;

(76)

Estruturas de controle

REPETIÇÃO III

• Repeat...Until

• Permite que um mesmo trecho do algoritmo seja repetido até uma determinada condição seja verdadeira, ou seja, executa um conjunto de instruções enquanto a condição se mantém Falsa e até que ela seja Verdadeira, sempre verificando a condição após cada execução. Irá efetuar a execução de um conjunto de instruções pelo menos uma vez antes de verificar a validade da condição estabelecida.

(77)

Estruturas de controle

REPETIÇÃO III

repeat

//bloco de código until (condicao);

(78)

É um tipo de dado estruturado unidimensional que consiste de um número fixo de elementos, sendo que todos os elementos devem ser do mesmo tipo (char, integer, real, string ....)

• Definição na linguagem Pascal:

nome_do_array: ARRAY [inicio..fim] of tipo;

(79)

• Exemplo:

notas: ARRAY [1..4] of real;

• Acessando os dados:

notas[1]:= 5.0; notas[2]:= 4.0;

Vetores

(80)

É um tipo de dado estruturado bidimensional que consiste de um número fixo de elementos, sendo que todos os elementos devem ser do mesmo tipo (char, integer, real, string ....)

• É utilizado para armazenar tabelas, imagens etc.

• Manipulação muito semelhante aos vetores.

(81)

• Definição na linguagem Pascal:

nome: ARRAY [inicio..fim, inicio..fim] of tipo_dados;

• Exemplo:

m_notas: ARRAY [1..4, 1..4] of real;

Matrizes

(82)

• É uma estrutura de dados composta e heterogênea, que permite armazenar valores, onde esses valores podem ser de diferentes tipos.

(83)

• Definição em linguagem Pascal: type nome_tipo = record campo1: tipo1; campo2: tipo2; ... end; var nome_variavel : nome_tipo

Registros

(84)

• Exemplo: type t_aluno = record RA: integer; nome: string; idade: integer; telefone: string; end; var reg_alunos : t_aluno

Registros

RA nome idade telefone

(85)

• Acessando os campos do registro: reg_alunos.RA:= 10050; reg_alunos.nome:= ‘Renato’; reg_alunos.idade:= 23; reg_alunos.telefone:= ‘3660-1777’;

Registros

RA nome idade telefone

reg_alunos

(86)

Procedimentos

procedure nome_procedimento (var par1: tipo1; var par2: tipo2); begin

end;

Exemplo:

procedure mostraBoasVindas (var nome: string); begin

writeln(‘Bom dia ‘, nome, ‘. Seja bem-vindo’); end;

(87)

Funções

function nome_funcao (var par1: tipo1; var par2: tipo2): tipo_retorno;

begin

nome_funcao := valor_a_ser_retornado;

end;

Exemplo:

function media (var a: real; var b: real): real; begin

media:= (a + b) / 2;

Referências

Documentos relacionados

- possuir equipamentos obrigatórios; - estar de acordo com o Regulamento; - assinar Termo de Responsabilidade**. As inscrições são aceitas conforme o item Categorias. As vagas

Se a permanência no regime simplificado implica que os sujeitos passivos, no exercício da sua actividade, não tenham ultrapassado no período de tributação

0 ESiaRo Digo, como telespectador assiduo que sou, que a tvanão traz muita coisa de bon e aproveitável. Tudo já vem pronto nos chamados programas cultuxais, o: então nos vivemos com

Anne Teresa De Keersmaeker e Jean-Guihen Queyras (o violoncelista que vai acompanhar ao vivo os bailarinos, tocando as suites de seguida, em tours de force de mais de duas

Câmara dos Santos.. A pesquisa deste casal é divulgada no mundo a partir da publicação do primeiro artigo que tratava da teoria pelo Van Hiele na França, pois até então a teoria

A partir de um estudo sobre os modelos de desenvolvimento do pensamento sobre a linguagem de funções, este trabalho tem o objetivo de propor e testar um modelo de níveis

Os candidatos aprovados no presente processo seletivo, obedecida a classificação final, serão convocados para a contratação por meio do Edital de Convocação publicado no quadro

A linguagem usada para expressar as políticas de adaptação tem primitivas dese- nhadas a pensar nas especificidades dos sistemas replicados (como os sistemas BFT), contudo é