Técnicas de Programação - TPR

Slides:



Advertisements
Apresentações semelhantes
Algoritmo e Programação
Advertisements

Introdução a Algoritmos
gerador de código intermediário
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Introdução à Programação
Data: 10 a 12 de fevereiro de 2009 e
Introdução à Ciência da Computação Linguagens de Programação.
Algoritmo Exemplo: faça um algoritmo para tocar todas as músicas de um cd. Após o usuário apertar o play Algoritmo Para as músicas de 1 até última música.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Construção de Algoritmos AULA 07
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
Linguagem de Montagem Visão geral.
Teste de Software.
Paradigmas de Linguagens Conceitos Básicos
Introdução a Programação Renata Freire
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
INTRODUÇÃO À PROGRAMAÇÃO
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Linguagens de Programação
INTRODUÇÃO À PROGRAMAÇÃO
Algoritmos e Programação
Técnicas de Programação I
Programação I Caderno de Exercícios Nome.
Professor Fernando Luís
Paradigmas de programação
JAVA: Conceitos Iniciais
PROGRAMAÇÃO I UNIDADE 1.
Programação Avançada Prof. Natalia Castro Fernandes
Comunicação Inclusiva Acessibilidade e Programação Web
Linguagem de Programação II Parte IX
Representação de Algoritmos
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
PCI- Introdução à Computação
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Desenvolvimento de Jogos e Entretenimento Digital
Introdução a Programação
Algoritmos e Programação de Computadores
Introdução a Linguagens de Programação
Laboratório I Mateus Raeder Material baseado nos originais da
Teoria e Implementação de Linguagens Computacionais – IF688
TÉCNICAS DE PROGRAMAÇÃO
02/08/2011 Professor Leomir J. Borba- –
Técnicas de Programação I Prof:. Msc. Arimatéia Junior Fortaleza-2011.
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Geração de Código aula-12-geração-de-código.pdf.
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Paradigmas de Linguagens de Programação Aula 2
Analise Semântica aula-10-analise-semântica.pdf.
Projeto de Linguagens de Programação
Igor Steinmacher, MSc. O maravilhoso mundo da Lógica de Programação.
Programação de PIC em C Exposição das funções básicas para
Linguagens de Programação
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN
Fundamentos de linguagens de programação
Algoritmos e Programação MC102
Programação Computacional Aula 2: Introdução -Algoritmos
Linguagens de Programação
Algoritmos e Programação I
SISTEMAS DE INFORMAÇÃO
Introdução a linguagem de Programação Java. Linguagens de Programação Linguagens de máquina(muito difíceis de usar e compreender) – Comanda ações do computador.
Linguagem de Programação I PARTE i
Curso Engenharia Química Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores.
Algoritmos e Estruturas de Dados I - Introdução
Influencias sobre o Projeto da Linguagem
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

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.

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

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

Avaliação Presença Aprovação sem PF: PF GF Aprovação: 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

Técnicas de Programação - TPR Conceitos básicos

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 Tem que Praticar !!!

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 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 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-FONTE CÓDIGO-OBJETO PROGRAMA EXECUTÁVEL ALGORITMO

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 CALCULA_DOBRO Variaveis Inteiro NUM,RESULTADO; início Ler NUM; DOBRO = 2 * NUM; Escrever RESULTADO; 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 NOME = 'João‘ A = B + C B = A SENHA = 'X3Y9‘ NOTA = NOTA – 1 NOTA = 10 C = 1 / 3 X = 2.5

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

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