Você está na página 1de 32

Técnicas de

Programação I

Conceitos básicos

Material baseado nas aulas da Profa. Isabel Harb Manssour


http://www.inf.pucrs.br/~manssour/LaproI, entre outros materias
Sumário
 Algoritmo x Programa
 Linguagens de Programação
 Abstração
 Classes de Linguagens de Programação
 Relação entre Algoritmos e Programação
Algorítmo
 Definições:
 “Um conjunto finito de regras que provê uma
seqüência de operações para resolver um
tipo de problema específico” [KNUTH]
 “Seqüência ordenada, e não ambígua, de
passos que levam à solução de um dado
problema” [TREMBLAY]
 Ou seja:
 Um algoritmo é como uma “receita de bolo” para o
computador, onde estão definidos todos os comandos
que ele deve executar para alcançar um objetivo
Algorítmo
 Um algoritmo é uma forma de indicar o
caminho para a solução dos mais variados
problemas
 Em geral, existem muitos caminhos que
levam à solução de um problema
 Portanto, para cada problema existe mais do
que um algoritmo [Orth 2001]
Algorítmos: Exemplos
 Instruções para se utilizar um aparelho
eletrodoméstico;
 Uma receita para preparo de algum prato;
 Guia de preenchimento para declaração do imposto
de renda;
 A regra para determinação de máximos e mínimos
de funções por derivadas sucessivas;
 A maneira como as contas de água, luz e telefone
são calculadas mensalmente; etc.
Algorítmos: Importância
 O computador, por si só, não tem vontade
própria !
 É necessário especificar uma seqüência de
passos lógicos para que o computador possa
executar uma tarefa qualquer. Com uma
ferramenta algorítmica, podemos conceber uma
solução para um dado problema, independendo
de uma linguagem específica e até mesmo do
próprio computador
Algorítmos: Características
 ter fim;
 não dar margem à dupla interpretação;
 capacidade de receber dado(s) de entrada
do mundo exterior;
 poder gerar informações de saída para o
mundo externo ao do ambiente do algoritmo;
 ser efetivo:
 todas as etapas especificadas no algoritmo
devem ser alcançáveis em um tempo finito.
Aprendendo Algorítmos
Algorítmos X Programas
 Um programa é a formalização de um
algoritmo em uma determinada linguagem de
programação, segundo suas regras de sintaxe
e semântica, de forma a permitir que o
computador possa entender a seqüência de
ações.
 Programa é um software que diz para o
computador o que o hardware deve fazer:
 Ler e escrever em arquivos do HD
 Exibir informações no monitor
 ....
Linguagem de Programação
 Linguagem de programação:
 Um conjunto de termos e de regras que permitem a
formulação de instruções a um computador
 C, C++, Delphi, Pascal,Java, etc.

 Regras Sintáticas:
 conjunto de regras que determina quais construções são
corretas para formação dos programas;
 preocupa-se com a “forma” dos programas

 Regras Semânticas:
 descrição da maneira que um programa sintaticamente
correto é interpretado ou executado;
 preocupa-se com o “significado” dos programas
Classes de Linguagens de
Programação
 Considerando o nível de abstração, identifica-se três classes de
linguagens de programação:
 Linguagem de Máquina
 Baseada num código binário
 Exemplo:
 0010 001 0110 1100  (soma) (reg1) ($108)
 Linguagem de Baixo Nível
 Códigos binários são substituídos por mnemônicos
Exemplo
 LOAD R2, $108 ADD R1, R2
 Linguagem de Alto Nível
 Mais próxima da linguagem do homem, não requer conhecimento da
arquitetura da máquina e é portável, isto é, independente da máquina
 Exemplo:
 a = a + 10;
 C, C++, Pascal, Java, LISP são exemplos de linguagens de alto nível
Processo de Criação e
Execução de um Programa

 Os computadores, existentes hoje em dia são capazes de


executar somente programas em linguagem de baixo nível, a
Linguagem de Máquina.

 Linguagens de Máquina são projetadas levando-se em conta os


seguintes aspectos :
 rapidez de execução de programas;
 custo de sua implementação; e
 flexibilidade com que permite a construção de programas de nível
mais alto.

 Por outro lado, linguagens de programação de alto nível são


projetadas em função de :
 facilidade de construção de programas; e
 confiabilidade dos programas.
Processo de Criação e
Execução de um Programa
 O PROBLEMA:
 Como a linguagem de nível mais alto pode ser
implementada em um computador, cuja linguagem é
bastante diferente e de nível mais baixo ?
 SOLUÇÃO:
 Através da tradução de programas escritos em linguagens
de alto nível para a linguagem de baixo nível do
computador.
 Tipos de programas tradutores :
 Montadores, Interpretadores e Compiladores.
MONTADOR
 Efetua a tradução de linguagem de montagem
( Assembly ) para a linguagem de máquina, da
seguinte forma:
 obtém a próxima instrução do Assembly;
 traduz para as instruções correspondentes em
linguagem de máquina;
 executa as instruções em linguagem de máquina;
e
 repete o passo 1 até o fim do programa.
INTERPRETADOR
 Efetua a tradução de uma linguagem de alto
nível para linguagem de máquina da seguinte
forma:
 obtém próxima instrução do código-fonte em
linguagem de alto nível;
 traduz para as instruções correspondentes em
linguagem de máquina;
 executa as instruções em linguagem de máquina; e
 repete o passo 1 até o fim do programa
COMPILADOR
 Efetua a tradução de todo o código-fonte em
linguagem de alto nível para as instruções
correspondentes em linguagem de máquina,
gerando o código-objeto do programa.
 Em seguida é necessário o uso de um outro
programa ( Link-Editor ) que é responsável
pela junção de diversos códigos-objeto em
um único programa executável.
COMPILADOR

EDIÇÃO COMPILAÇÃO LINK-EDIÇÃO

CÓDIGO- CÓDIGO- PROGRAMA


ALGORITMO
FONTE OBJETO EXECUTÁVEL
Possibilidades de Erros em
Programas
 Erros de Compilação :
 erros de digitação e de uso da sintaxe da
linguagem.
 Erros de Link-Edição :
 erro no uso de bibliotecas de sub-programas
necessárias ao programa principal.
 Erros de Execução :
 erro na lógica do programa (algoritmo).
Programas: Critérios de
Qualidade
 Integridade:
 os resultados gerados pelo processamento do programa devem estar corretos;
 Clareza:
 refere-se à facilidade de leitura do programa.
 Leitura por outro programador, manutenção
 Simplicidade:
 a clareza e precisão de um programa são normalmente melhoradas tornando seu
entendimento o mais simples possível, consistente com os objetivos do programa.
 Eficiência:
 Um programa deve ter desempenho SUFICIENTE para atender às necessidade
do problema e do usuário, bem como deve utilizar os recursos de memória de
forma moderada, dentro das limitações do problema;
 Modularidade:
 consiste no particionamento do programa em módulos menores bem identificáveis
e com funções específicas, de forma que o conjunto desses módulos e a interação
entre eles permite a resolução do problema de forma mais simples e clara; e
 Generalidade:
 é interessante que um programa seja tão genérico quanto possível de forma a
permitir a reutilização de seus componentes em outros projetos.
Programação: Etapas
 Especificar claramente o problema:
 o que deve ser resolvido;
 Projetar uma solução (algorítmo) para solucionar
o problema:
 transformar o que deve ser resolvido em como resolvê-lo;
 Escrever a solução em uma linguagem de
programação (programa):
 editar um arquivo em uma linguagem de programação;
 Testar a solução (programa).
Estrutura de um Programa
 Cabeçalho
 Esta área é utilizada para se fazer a identificação do
programa com um nome.
 Área de Declarações:
 Esta área é utilizada para validar o uso de qualquer tipo de
identificador que não seja predefinido.
 Ex:
 declaração das variáveis que serão utilizadas durante a
execução de um programa, bem como, também o seu tipo.
 Corpo
 Área onde programa propriamente dito está escrito
 Tem início e fim definidos através de comandos de
delimitação.
Exemplo
 Desenvolver um algorítmo que calcule do
dobro de um determinado valor e apresente
o resultado obtido.”
Etapas
 Ler o valor a ser multiplicado e guardar na
variável NUM;
 Efetuar a multiplicação da variável NUM por
2 e guardar na variável RESULTADO;
 Apresentar o valor da variável RESULTADO
Linguagem Algorítmica

Algoritmo
Algoritmo CALCULA_DOBRO
CALCULA_DOBRO
Variaveis
Variaveis
NUM,RESULTADO:
NUM,RESULTADO: Inteiro
Inteiro
início
início
Leia
Leia NUM;
NUM;
DOBRO
DOBRO   22 ** NUM;
NUM;
Escreva
Escreva RESULTADO;
RESULTADO;
fim
fim
Variáveis
 É uma região previamente identificada, que
tem por finalidade armazenar informações
(dados na memória) de um programa
temporariamente
 Uma variável armazena apenas um valor por
vez.
 Sendo considerado como valor o conteúdo de
uma variável, este valor está associado ao tipo
de dado da variável.
Operação de Atribuição
 Permite que se forneça um valor a uma certa
variável.
 Se for atribuído uma expressão à variável,
será armazenado o resultado daquela
expressão.
 Se for atribuído uma outra variável, será
armazenado o conteúdo daquela variável.
Exemplos
 A2  SENHA  'X3Y9‘

 NOME  'João‘  NOTA  NOTA – 1

 AB+C  NOTA  10

 BA  C1/3

 X  2.5
Operações de Entrada e Saída
 Comando leia nos  leia NOTA
permite ler valores
dados atribuindo-os à  leia A,B,C
variáveis indicadas;

 escreva NOTA+2
 Comando escreva nos
permite mostrar os
resultados.  leia NOM

 escreva A,B
Estruturas Básicas de
Controle
 Sequenciação
 Seleção; e
 Repetição
Estrutura de Seqüenciação
 Define que os comandos deverão ser executados numa
seqüência linear.
 Leitura:
 seguindo-se o texto em que estão escritos, de cima para baixo,
um comando após o outro.
 INICIOFIMComando-1Comando-2Comando-n
 Exemplo

inicio
comando-1;
comando-2;
...
comando-n
fim
Exercícios
 Determine os valores finais de A,B, e C
considerando-se a seqüencia de comandos a
seguir::
 A  0; B  1; C  A + B;
A  A + 1; B  A + B + C
 Desenvolver um programa que efetue a
leitura de dois valores numéricos. Faça a
operação de adição entre os dois valores e
apresente o resultado obtido.”
Estruturas de controle

Você também pode gostar