Técnicas de Programação - TPR Edson Lourenço da Aparecida [email protected].

37
Técnicas de Programação - TPR Edson Lourenço da Aparecida [email protected]

Transcript of Técnicas de Programação - TPR Edson Lourenço da Aparecida [email protected].

Page 1: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Técnicas de Programação - TPR

Edson Lourenço da Aparecida

[email protected]

Page 2: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Objetivos do Curso Codificar algoritmos utilizados para solução de problemas

através do conhecimento dos recursos de uma linguagem de programação imperativa e bloco-estruturada.

Desenvolver habilidades cognitivas e sociais intrínsecas num projeto de trabalho inter e multidisciplinar.

Dominar o processo de solução de problemas através do desenvolvimento de programas de computador utilizando uma linguagem de programação.

Pré-requisito: Conhecer aspectos básicos de operação de um sistema

operacional e seus principais comandos.

Page 3: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Programa Noções básicas de Algorítmos Características de linguagem imperativa e bloco-estruturada Estrutura básica de um programa Tipos de dados Declaração de variáveis e constantes Expressões aritméticas: operadores artiméticos e prioridade Comando de atribuição Expressões lógicas: operadores lógicos, tabela verdade, Prioridade Comandos de entrada e saída Estruturas de controle de fluxo: seqüência, seleção, repetição Modularidade

Conceitos e vantagens de utilização, Escopo de variáveis`(locais e globais), Tipos de subprogramas (procedimentos e funções), Passagem de parâmetros (por valor e por referência), Programação modular (funções)

Tipos de dados estruturados Registro, Vetores e Matrizes, Vetores e Matrizes de Registros,

Arquivos Textos e Binários Ponteiros

Noções Básicas, Alocação Dinâmica

Page 4: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Avaliação

G1 = (P1 + P2 + (MT+TF)) / 3

Onde: P1 & P2: Prova escrita MT: média dos trabalhos de implementação a

serem solicitados ao longo do semestre TF: nota do trabalho prático final MT+TF = 100 , P1=100 e P2=100 pontos

Page 5: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Avaliação Presença

75% de presença é necessário para aprovação Aprovação sem PF:

G1 >=7.0 & 75% de presença

PF Prova escrita, abordando os conteúdos de TODAS as

unidades GF

GF = G1 + PF/2 Aprovação:

GF >= 5.0 & 75% de presença

Page 6: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Técnicas de Programação - TPR

Conceitos básicos

Page 7: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Sumário

Algoritmo x Programa Linguagens de Programação Abstração Classes de Linguagens de Programação Relação entre Algoritmos e Programação

polvga-eti03
Exemplo do indio e escada
Page 8: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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

Page 9: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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]

Page 10: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 11: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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

Page 12: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 13: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Aprendendo Algorítmos

Page 14: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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 ....

Page 15: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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

Page 16: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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ônicosExemplo 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

Page 17: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 18: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 19: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 20: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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

Page 21: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 22: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

COMPILADOR

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

ALGORITMOCÓDIGO-FONTE

CÓDIGO-OBJETO

PROGRAMA EXECUTÁVEL

Page 23: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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).

Page 24: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 25: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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).

Page 26: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 27: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Exemplo

Desenvolver um algorítmo que calcule do dobro de um determinado valor e apresente o resultado obtido.”

Page 28: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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

Page 29: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Linguagem Algorítmica

Algoritmo CALCULA_DOBROVariaveis

Inteiro NUM,RESULTADO;início Ler NUM; DOBRO = 2 * NUM; Escrever RESULTADO;fim

Algoritmo CALCULA_DOBROVariaveis

Inteiro NUM,RESULTADO;início Ler NUM; DOBRO = 2 * NUM; Escrever RESULTADO;fim

Page 30: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 31: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.

Page 32: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Exemplos

A = 2

NOME = 'João‘

A = B + C

B = A

SENHA = 'X3Y9‘

NOTA = NOTA – 1

NOTA = 10

C = 1 / 3

X = 2.5

Page 33: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Operações de Entrada e Saída

Comando ler nos permite ler valores dados atribuindo-os à variáveis indicadas;

Comando escrever nos permite mostrar os resultados.

ler NOTA

ler A,B,C

escrever NOTA+2

ler NOM

escrever A,B

Page 34: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Estruturas Básicas de Controle

Sequenciação Seleção; e Repetição

Page 35: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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

Page 36: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

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.”

Page 37: Técnicas de Programação - TPR Edson Lourenço da Aparecida Edson.aparecida@gmail.com.

Estruturas de controle