Introducao e Paradigma Imperativo - DC

Propaganda

Estudar conceitos sobre linguagens de
programação e seus paradigmas, tornandose apto a adotar decisões de projetos que
envolvem a seleção de linguagens de
programação mais adequadas para o
desenvolvimento de aplicações
computacionais.




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.
Quem executa o programa é o processador.

O processador interage com outros
componentes.




É 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.

O código escrito em linguagem de alto nível é
convertido em linguagem de máquina pelo
compilador ou interpretador.

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.


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.
1.
2.
3.
4.
análise do problema a ser resolvido;
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;
implementação (codificação) do programa;
testes.

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.


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
bloco principal

Os tipos abstratos de dados, ou, simplesmente,
tipos de dados, definem quais tipos de informações
podem ser processadas pelo computador.

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
de repetir um conjunto de instruções.

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:
clrscr; //limpar a tela no pascal



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.




Os programas gerados são eficientes.
Fácil modelagem para aplicações do mundo
real.
Capacidade de modularização do códigofonte.
Muito utilizado no meio acadêmico e
comercial.



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.




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.
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.

De maneira geral, um programa em
linguagem imperativa é organizado em duas
regiões:
 Área de declaração (métodos, variáveis)
 Corpo do programa.


Programas em linguagem imperativa fazem
uso de variáveis para armazenar valores que
são utilizados nos processamentos.
Cada variável pode armazenar um
determinado tipo de dado.
SELEÇÃO
if condicao then
begin
//caso condição verdadeira
end
else
begin
//caso condição falsa
end;
case condicao of
‘valor1’: begin
end;
‘valor2’: begin
end;
else: begin
end;
REPETIÇÃO
for i:= valor_inicial to valor_final do
begin
//bloco de código
end;
while (condicao) do
begin
//bloco de código
end;
repeat
//bloco de código
until (condicao);

É 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;

Exemplo:
notas: ARRAY [1..4] of real;
notas[1]

notas[2]
notas[3]
notas[4]
Acessando os dados:
notas[1]:= 5.0;
notas[2]:= 4.0;

É 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.

Definição na linguagem Pascal:
nome: ARRAY [inicio..fim, inicio..fim] of tipo_dados;
linhas

colunas
Exemplo:
m_notas: ARRAY [1..4, 1..4] of real;

É uma estrutura de dados composta e
heterogênea, que permite armazenar valores,
onde esses valores podem ser de diferentes
tipos.

Definição em linguagem Pascal:
type
nome_tipo = record
campo1: tipo1;
campo2: tipo2;
...
end;
var
nome_variavel : nome_tipo

Exemplo:
type
t_aluno = record
RA: integer;
nome: string;
idade: integer;
telefone: string;
end;
var
reg_alunos : t_aluno
reg_alunos
RA
nome
idade
telefone

Acessando os campos do registro:
reg_alunos
RA
nome
10050
Renato
idade
23
telefone
3660-1777
reg_alunos.RA:= 10050;
reg_alunos.nome:= ‘Renato’;
reg_alunos.idade:= 23;
reg_alunos.telefone:= ‘3660-1777’;
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;
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;
end;
Download