Programação de Computadores

Documentos relacionados
Programação de Computadores

Programação de Computadores

PROGRAMAÇÃO I. Introdução

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Introdução a Programação de Jogos

Algoritmos e Programação

Fundamentos de Programação 1

Introdução a Programação

Algoritmos e Programação

Introdução à Computação

INF 1005 Programação I

Estrutura e funcionamento básico de um computador

Linguagens de Programação

Introdução a Ciência da Computação

Introdução ao Python. Programa Computacional

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

Revisão: linguagens de programação

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

Linguagens de Programação Aula 3

Compiladores. Introdução à Compiladores

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

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

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

Informática I. Aula 14. Aula 14-10/10/2007 1

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

Universidade Estadual de Santa Cruz

Programação Estruturada Aula - Introdução a Linguagem de Programação

Linguagens de Programação Classificação

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

As fases de um compilador

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Algoritmos. Prof. Jonatas Bastos Site:

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

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

As fases de um compilador

Visão Geral... e conceitos básicos

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

Organização de Computadores

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

Fundamentos de Sistemas Operacionais

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

Introdução à Programação

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES

Introdução à Computação: Máquinas Multiníveis

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

Programação de Computadores:

Conceitos de Linguagens de Programação

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

PROGRAMAÇÃO EM JOGOS DIGITAIS

Programação Estruturada Aula 1 - Introdução

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares

3. Linguagem de Programação C

Aula 3 Máquina Multinível

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

CES-10 Introdução à Computação. Prof. Paulo André IEC - ITA

Programação I Apresentação

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

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

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Compiladores. Introdução

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

Aula 2 - Introdução Cleverton Hentz

Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação

Universidade Veiga de Almeida Algoritmos e Linguagem I

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Computação

Autômatos e Linguagens

Introdução à Computação

Noções de compilação

Introdução à Programação. Conceitos Básicos de Programação

Projeto de Compiladores

Noções de compilação

Aula 2 - Programação de Computadores - CI208 1/21

Fundamentos de Programação

Introdução ao Fortran 90

Infraestrutura de Hardware. Funcionamento de um Computador

Algoritmos e Programação

Métodos de implementação de linguagens. Kellen Pinagé

Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR

MC-102 Aula 01. Instituto de Computação Unicamp

Linguagens de Programação

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Algoritmos. Laura Goulart. 11 de Dezembro de 2018 UESB. Laura Goulart (UESB) Algoritmos 11 de Dezembro de / 12

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Linguagens de Programação

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação Parte 2

Algoritmos e Programação

Sistema Computacional

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

Transcrição:

Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho

Conteúdo Alguns Conceitos sobre Linguagens Paradigmas para linguagens de Programação Linguagens de alto, médio e baixo nível de abstração Processo de resolução de problemas Conceito de Algoritmo

Paradigmas de Programação Paradigmas de Linguagens de Programação Linguagem de programação imperativa Linguagem de programação estruturada Linguagem de programação Orientada a Objetos Linguagem de programação Indutiva Linguagem de programação Orientada por Semântica Etc.

Ideias Gerais sobre Linguagens Estes paradigmas de linguagens programação não são mutuamente excludentes Podemos ter linguagens multiparadigmáticas

Ideias Gerais sobre Linguagens Programação Imperativa As linguagens de uso mais comum trabalham sobre o paradigma denominado Programação Imperativa A Programação Imperativa descreve o processo de computação como ações, enunciados ou comandos que mudam as variáveis (formas organizadas de informação) definidas num programa. São exemplos de linguagens imperativas - Fortran, C, C++, Python, Java, Lua

Variáveis Variáveis São espaços reservados na memória do computador que serão lidos e escritos de uma forma pré-estabelecida

Ideias Gerais sobre Linguagens Programação Estruturada É uma forma de programação na qual os programas serão construídos usando três estruturas: - de sequência: uma tarefa é executada após a outra, linearmente - de decisão: partindo de testes lógicos, segmentos do código serão executados ou não - de Iteração: partindo de testes lógicos, segmentos do código são repetidos um número finito de vezes - Quase todas as linguagens atuais são estruturadas

Ideias Gerais sobre Linguagens As linguagens podem ser Compiladas São linguagens que fazem uso de um programa chamado compilador que transforma o código fonte escrito numa linguagem em outro código equivalente em outra linguagem Interpretadas São linguagens que fazem uso de um programa chamado interpretador que permite que o sistema operacional ou o processador execute diretamente o código fonte escrito

Ideias Gerais sobre Linguagens As linguagens podem ser Compiladas Exigem pelo menos um passo intermediário para a execução A execução é mais rápida que com as interpretadas São boas onde é necessário velocidade de execução Interpretadas Resultam numa aplicação mais direta São boas na construção de protótipos e ações de controle de processos

Ideias Gerais sobre Linguagens As linguagens podem ser Compiladas Algol, Fortran, Pascal, C, C++ Interpretadas Java, Lisp, Forth, Lua, PHP, Ruby, Python, R

Ideias Gerais sobre Linguagens As linguagens podem ser Compiladas Algol, Fortran, Pascal, C, C++ Interpretadas Java, Lisp, Forth, Lua, PHP, Ruby, Python, R Existem linguagens que podem usar recursos da compilação e da interpretação conjuntamente como Forth

Ideias Gerais sobre Linguagens As linguagens podem ser De baixo nível São linguagens que acessam diretamente as características da arquitetura de um computador usando as instruções do processador. Dizemos que estamos escrevendo programas em linguagem de máquina e com baixo nível de abstração De alto nível Faz uso de estruturas das linguagens naturais facilitando a programação. Tem um nível mais alto de abstração De médio nível Conjuga o acesso à arquitetura com estruturas de alto nível

Ideias Gerais sobre Linguagens As linguagens podem ser De baixo nível São os códigos de cada processador ou os chamados montadores (Assemblers) De alto nível Algol, Fortran, Pascal, Java, Lisp, Lua, PHP, Ruby, Python, R De médio nível C, C++, Forth

Ideias Gerais sobre Linguagens As linguagens podem ser De baixo nível Resultam em programas altamente eficientes em termos de memória e tempo de execução Programação difícil exigindo muito treinamento De alto nível e médio nível São menos eficientes em termos de tempo de execução e uso de memória que as de baixo nível São de programação mais simples que as de baixo nível

Ideias Gerais sobre Linguagens As linguagens podem ser De baixo nível Resultam em programas altamente eficientes em termos de memória e tempo de execução Programação difícil exigindo muito treinamento De alto nível e médio nível São menos eficientes em termos de tempo de execução e uso de memória que as de baixo nível São de programação mais simples que as de baixo nível Não se esqueça que, assim como todo e qualquer trabalho, pode se programar mal em qualquer linguagem

Algoritmo - É um conjunto de operações, finitas em número, necessárias à resolução do problema - Observe que pela definição o algoritmo é independente da linguagem de programação - Em geral, a parte que exige maior esforço é a concepção do algoritmo

Algoritmo Podem existir problemas para os quais não existe algoritmo Em alguns casos isto se dá por não ser possível achar o que se pretende em um número finito de passos

Algoritmo Vamos a um exemplo de algoritmo

Sequência de Fibonacci A sequência de Fibonacci é gerada da seguinte forma: Seja F1 = 1 e F2 = 1 Então Fn = Fn-1 + Fn-2 Assim teremos a sequência: 1, 1, 2, 3, 5, 8, 13...

Sequência de Fibonacci Vejamos alguns programas que geram a sequência de Fibonacci em várias representações

Sequência de Fibonacci Representado em binário 1000 1011 0101 0100 0010 0100 0000 1000 1000 0011 1111 1010 0000 0000 0111 0111 0000 0110 1011 1000 0000 0000 0000 0000 0000 0000 0000 0000 1100 0011 1000 0011 1111 1010 0000 0010 0111 0111 0000 0110 1011 1000 0000 0001 0000 0000 0000 0000 0000 0000 1100 0011 0101 0011 1011 1011 0000 0001 0000 0000 0000 0000 0000 0000 1011 1001 0000 0001 0000 0000 0000 0000 0000 0000 1000 1101 0000 0100 0001 1001 1000 0011 1111 1010 0000 0011 0111 0110 0000 0111 1000 1011 1101 1001 1000 1001 1100 0001 0100 1010 1110 1011 1111 0001 0101 1011 1100 0011

Sequência de Fibonacci Representado em hexadecimal 8B542408 83FA0077 06B80000 0000C383 FA027706 B8010000 00C353BB 01000000 B9010000 008D0419 83FA0376 078BD989 C14AEBF1 5BC3

Sequência de Fibonacci Representado em Assembly

Sequência de Fibonacci Representado em C

Sequência de Fibonacci Representado em Python

Sequência de Fibonacci Representado em Python (Versão menos legível)

Processo de Resolução de Problemas -Compreender o problema para poder fazer o programa desejado: Definindo dos requisitos do problema Entradas Cálculos Decisões e repetições Saídas -Estabelecer um plano para resolver de maneira correta o problema: Desenvolvendo do algoritmo da solução Fluxograma Pseudocódigo

Processo de Resolução de Problemas -Codificar o programa: Python no nosso caso -Testar o programa. Detectar: Defeitos na codificação Defeitos na concepção da solução

Processo de Resolução de Problemas Python é uma linguagem: Interpretada De alto nível Multiparadigmática (estruturada, imperativa, orientada a objeto, funcional)

Resumo - Crie um algoritmo partindo da necessidade de resolver um problema - Escolha a linguagem mais adequada - Codifique o algoritmo nesta linguagem - Teste o código escrito na linguagem: - Parte do teste são correções de escrita do código - Parte do teste é a avaliação dos resultados e a compatibilidade deles com o esperado O processo de detecção e correção de erros é chamado de Depuração

Tipos de erros - Sintaxe: A transcrição do algoritmo para a linguagem não seguiu as regras da mesma - Lógico: Os resultados não são os esperados podendo inclusive provocar paradas inesperadas do programa