Programação I Apresentação

Documentos relacionados
Análise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Desenvolvimento de programas

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

INF 1005 Programação I

Introdução a Programação de Jogos

Sintática: como é escrito cada elemento da linguagem de programação.

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

Revisão: linguagens de programação

Programação I Estruturas de Repetição

Programação de Computadores

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Paradigmas de Programação

Introdução à Programação

Programação de Computadores

Introdução à Programação

Programação de Computadores

Introdução à Computação

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Programação de Computadores:

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

3. Linguagem de Programação C

Paradigmas de Linguagem de Programação. Aspectos Básicos

SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica

Introdução a Lógica de Programação

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Capítulo 1 Conceitos Básicos

Aula 2 - Introdução Cleverton Hentz

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Portugol. Tiago Alves de Oliveira

Linguagens de Programação Aula 3

FACULDADE LEÃO SAMPAIO

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

Capítulo 8. Estruturas de Controle no Nível de Sentença

Linguagens de Programação

Introdução à Lógica de Programação

LÓGICA DE PROGRAMAÇÃO 1

Autômatos e Linguagens

Aula 3: Algoritmos: Formalização e Construção

Como construir um compilador utilizando ferramentas Java

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

É neste ponto que entra o conceito de lógica de programação.

Fluxogramas. Leandro Tonietto ago-09

Linguagem de Descrição de algoritmos

PROGRAMAÇÃO I. Introdução

Capítulo 1. Aspectos Preliminares

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. ANÁLISE E DESENVOLVIMENTO DE SISTEMAS/PARANGABA PROF. MS. RONNISON REGES VIDAL Ceará, 01 de fevereiro de 2017

Fundamentos de Programação

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

Informática I. Aula 9. Aula 9-27/09/2006 1

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

TECNOLOGIA EM REDES DE COMPUTADORES. computadores. Aula 4

Conceitos Básicos de Algoritmos

1 Introdução à Programação O que é? Para que serve?... 1

Programação Procedimental

Programação I Funções. Prof. Carlos Alberto

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Introdução à Programação. João Manuel R. S. Tavares

Conceitos Básicos. Fundamentos de Programação de Computadores

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

LAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti

Algoritmos. Prof. Jonatas Bastos Site:

Vamos Programar? - Introdução à Programação #3

Apresentação. Informação geral + Conceitos iniciais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Pseudocódigo e Visualg

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Algoritmos e Estruturas de Dados

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Noções de algoritmos - Aula 1

Linguagens de Programação. Introdução. Carlos Bazilio

Programação I A Linguagem C. Prof. Carlos Alberto

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Desenvolvimento de Aplicações Desktop

ao paradigma imperativo

Linguagens de Programação

Introdução e Conceitos

Informática I. Aula 9. Aula 9-17/05/2006 1

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Apostila de Fortran. É uma pseudo-linguagem a qual oferece recursos para que o programador possa codificar e testar os seus algoritmos.

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Transcrição:

Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br

Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação de Computadores. Editora Campus/Elsevier, 2012.

Referências MEDINA, M.; FERTIG, C. Algoritmos e programação: teoria e prática. São Paulo: Novatec, 2006.

Referências SCHILDT, Herbert. C Completo e Total. São Paulo: Makron Books, 1996.

5 Vamos começar?

6 O que é um algoritmo?

7 O que é um algoritmo? Sequência finita de operações que, quando executadas na ordem estabelecida, atingem um objetivo determinado em um tempo finito.

8 O que é um algoritmo? Sequência finita de operações que, quando executadas na ordem estabelecida, atingem um objetivo determinado em um tempo finito. Um algoritmo deve atender aos seguintes requisitos: Posuir um estado inicial; Consistir de uma sequência lógica finita de ações claras e precisas; Produzir dados de saída corretos; Possuir estado final previsível (deve sempre terminar).

9 Podemos definir algoritmos para resolver problemas do dia a dia; Mas, podemos também desenvolver algoritmos que podem ser transformados em programas executados em computadores.

10 Podemos definir algoritmos para resolver problemas do dia a dia; Mas, podemos também desenvolver algoritmos que podem ser transformados em programas executados em computadores. Objetivo da disciplina

11 Para que um algoritmo possa ser executado por um computador é necessário identificar quais as ações que essa máquina pode executar;

12 Para que um algoritmo possa ser executado por um computador é necessário identificar quais as ações que essa máquina pode executar; Exemplo: Algoritmo média Var nota1, nota2, media : real Inicio leia(nota1, nota2) media := (nota1 + nota2)/2 escreva(media) fimalgoritmo

13 Analisando o exemplo, identificamos ações que podem ser executadas por um computador: Obter um dado de uma unidade de entrada de dados, também chamada de leitura de um dado; Resolver expressões aritméticas e lógicas; Colocar o resultado de uma expressão em uma variável. Informar um resultado através de uma unidade de saída, também chamada de escrita de uma informação ou saída de um dado;

14 Essas ações são denominadas instruções ou comandos Obter um dado de uma unidade de entrada de dados, também chamada de leitura de um dado; Resolver expressões aritméticas e lógicas; Colocar o resultado de uma expressão em uma variável. Informar um resultado através de uma unidade de saída, também chamada de escrita de uma informação ou saída de um dado;

15 Formas de expressar um algoritmo Linguagem textual Pseudolinguagem fluxograma

16 Linguagem textual. Utiliza a linguagem natural. Exemplo: soma dois valores 1. Obter os dois valores 2. Realizar a soma 3. Informar o resultado

17 Pseudolinguagem. Semelhante a uma linguagem de programação, sem entrar em detalhes como, por exemplo, formatação de informações de entrada e de saída. Exemplo: soma dois valores Algoritmo Soma Entradas: valor1, valor2 (real) Saídas: soma (real) Inicio Fim ler(valor1, valor2) soma valor1 + valor2 escrever (soma)

18 Fluxograma. Representação gráfica que possibilita uma interpretação visual do algoritmo. Não é adequada para algoritmos muito extensos. Exemplo: soma dois valores

19 Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um computador: Eficácia (corretude). Um algoritmo deve realizar corretamente a tarefa para a qual foi construído. Eficiência. A solução de um problema através de um algoritmo não é necessariamente única. Pode-se calcular a forma mais eficiente com base em dois critérios: tempo de execução e espaço de memória ocupado. Exemplos: Algoritmos de Busca e Algoritmos de Ordenação

Introdução Programa Formalização de um algoritmo em uma determinada linguagem de programação, segundo suas regras de sintaxe e semântica, de forma que o computador possa entender a sequência de ações. Linguagem de programação Conjunto de símbolos (comandos, identificadores, operadores, etc.) e regras que permitem a construção de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador. É definida por uma notação formal, através de dois componentes: sintaxe e semântica.

Introdução Sintaxe Estabelece a forma como as instruções da linguagem são escritas, mas sem especificar seu significado. Conjunto de regras que determinam que construções estão corretas e quais não estão. Por exemplo, na linguagem C, os blocos de códigos são limitados por {}, enquanto em Pascal, são limitados por BEGIN END.

Introdução Semântica Complementa a sintaxe. Corresponde à descrição do significado das instruções válidas de uma linguagem. Por exemplo, a sintaxe da instrução IF (se) da linguagem PASCAL é: IF <condição> THEN BEGIN END; <instruções> Sua semântica é: se o valor da expressão for verdadeira, as instruções incorporadas serão executadas pelo programa.

Introdução Diferença entre SINTAXE e SEMÂNTICA Sintaxe: descreve as estruturas de uma linguagem; Semântica: descreve o significado dessas estruturas.

Introdução Tipos de linguagens

25 Etapas de construção de um programa Programar não é uma atividade trivial, pelo contrário, requer muito cuidado e atenção; A dificuldade em gerar bons programas levou à definição de técnicas específicas que iniciam frequentemente com a construção de um algoritmo. A forma mais simples de garantir a qualidade de um programa é construí-lo seguindo uma série de etapas.

26 Etapas de construção de um programa Análise detalhada do problema. Identifica os aspectos que são relevantes para a solução do problema. Especificação dos requisitos do problema. Identifica e especifica os resultados que deverão ser produzidos (saídas) e os dados que serão necessários para a execução da tarfefa (entradas). Construção de um algoritmo. Projeto de um algoritmo que solucione o problema. Normalmente existem diversas soluções possíveis, esta etapa determina qual será adotada.

27 Etapas de construção de um programa Validação do algoritmo. Nessa etapa é feita a validação lógica do algoritmo, através de testes de mesa, simulando sua execução com dados virtuais. O objetivo é verificar se a solução proposta atinge o objetivo. Codificação do programa. Tradução do algorimo para uma linguagem de programação.

28 Etapas de construção de um programa Verificação do programa. Compilação, teste e depuração do programa gerado. Os mesmos valores utilizados no teste de mesa podem ser utilizados para testar o programa. Manutenção. Essa etapa acompanha o tempo de vida útil do programa, após ele ser disponibilizado para os usuários. A finalidade é corrigir eventuais erros detectados e/ou adicionar novas funcionalidades.

29 Etapas de construção de um programa

30 Paradigmas de programação Paradigma. Modelo ou padrão de como uma realidade é entendida e de como se interage com essa realidade. Paradigma de programação. Forma como a solução está estruturada e será executada no programa gerado, incluindo técnicas e conceitos específicos, bem como os recursos disponibilizados.

31 Principais paradigmas das linguagens de programação Imperativo ou procedural. Funcional. Lógico. Orientação a objetos.

32 Imperativo ou procedural. O programa é composto por uma sequência de comandos a serem executados pelo computador em uma determinada ordem. Ex.: Pascal, C, Fortran, Cobol, Basic; Funcional. O programa é composto pela declaração de funções que transformam a(s) entrada(s) na(s) saída(s) desejada(a). Ex.: Lisp, Haskell;

33 Lógico. Utilza a avaliação de condições lógicas como base para a escrita dos programas. Um programa é composto por regras que disparam ações a partir da identificação de premissas. Ex.: Prolog; Orientação a objetos. O mundo real é representado por meio de classes de objetos e das operações que podem ser realizadas sobre eles, as quais definem seu comportamento. Conceitos básicos adotados nesse paradigma: herança e polimorfismo. Ex.: Java, C++, C#, Smalltalk.

34 Nessa disciplina será utilizado o paradigma imperativo ou procedural, pelas seguintes razões: O paradigma imperativo permite representar de uma forma intuitiva os problemas do dia a dia, que geralmente são executados através de sequências de ações; Historicamente, os primeiros programas foram desenvolvidos em linguagens imperativas, sendo esse paradigma dominante e bem estabelecido; Existe um grande número de algoritmos e de sistemas implementados em linguagens que seguem esse paradigma, os quais podem ser utilizados como base para o desenvolvimento de novos programas.

35 Programação estuturada A programação estruturada pode ser vista como um subconjunto do paradigma imperativo. Princípio da programação estruturada O fluxo do programa deve ser estruturado, devendo esse fluxo ficar evidente a partir da estrutura sintática do programa. A estruturação deve ser garantida em dois níveis: Nível de comandos Nível de unidades.

36 Nível de comandos O programa deve ter um único ponto de entrada e um único ponto de saída; Deve exisitir de 1 a n caminhos definidos do princípio ate o fim do programa, sendo todas as instruções executáveis; Não podem aparecer loops infinitos de alguns comandos;

37 Nível de comandos O programa deve ser composto por blocos elementares de instruções (comandos), interconectados apenas pelos três fluxos de execução: sequência, seleção e iteração; Cada bloco elementar deve ser delimitado por um ponto de início e por um ponto de término. É totalmente proibido o uso de desvios incondicionais, implementado pelo comando GOTO (vá para).

38 Nível de comandos

39 Nível de unidades A programação estruturada baseia-se na ideia proposta em 1972 por Dijkstra: A arte de programar consiste na arte de organizar e dominar a complexidade dos sistemas. Deve-se enfatizar a utilização de unidades separadas de programas (módulos), que são ativadas através de comandos especiais; Deve-se utilizar a tática de dividir para conquistar ;

40 Nível de unidades O programa deve ser feito de forma descendente, decompondo o problema inicial em módulos ou estruturas hierárquicas (programação modular).

41 Em resumo, a programação estruturada consiste em: Uso de um número muito limitado de estruturas de controle; Desenvolvimento de algoritmos por fases ou refinamentos sucessivos; Decomposição do algoritmo total em módulos.

42 A programação estruturada visa à: Corretude da solução desenvolvida; Simplicidade da solução, garantindo fácil compreensão do código; Fácil manutenção dos programas, inclusive por outras pessoas além do desenvolvedor inicial.

43 Nessa disciplina será utilizada a programação estruturada, incentivando a modularização, de forma a garantir a qualidade dos programas construídos;

Obrigado!!!