Fundamentos de Programação Introdução

Documentos relacionados
ICC Introdução para JavaScript

Unidade 1: O Computador

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Fundamentos de Programação. Diagrama de blocos

Introdução à Programação de Computadores Parte I

2. ALGORITMOS. Unesp Campus de Guaratinguetá

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Fundamentos de Sistemas Operacionais

Introdução à Informática

Informática I. Aula Aula 19-20/06/06 1

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial


Flávia Rodrigues. Silves, 26 de Abril de 2010

OPERAÇÕES COM FRAÇÕES

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Conteúdo programático

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Aula 03. Processadores. Prof. Ricardo Palma

Banco de Dados I. Prof. Edson Thizon

4 Sistema Computacional:

SISTEMAS DISTRIBUÍDOS

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

NOVA VERSÃO SAFE DOC MANUAL

Sistemas Operacionais. Rodrigo Rubira Branco

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Lista de Exercícios 1

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Microprocessadores. Memórias

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

1 Circuitos Pneumáticos

PROGRAMAÇÃO DE COMPUTADORES

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

MODELO SUGERIDO PARA PROJETO DE PESQUISA

FATURA ELETRÔNICA DO PRESTADOR Layout do Arquivo Texto Versão 1.1.1

BANCO DE DADOS. Vinícius Pádua

Manual do Desenvolvedor Geração de Tokens

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

Carlos de Salles Soares Neto Segundas e Quartas, 17h40 às 19h10

Estruturas de Repetição

Engenharia de Software II

Usando potências de 10

com Utilização do Código de Barras VERSÃO 04

Aula 11: Desvios e Laços

Ondas EM no Espaço Livre (Vácuo)

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA QUÍMICA ENG 008 Fenômenos de Transporte I A Profª Fátima Lopes

Experiência 04: Comandos para testes e identificação do computador na rede.

Análise de Processos. Por José Luís Carneiro

2 Segmentação de imagens e Componentes conexas

Mídias Discretas. Introdução à Ciência da Informação

Arquitetura e Organização de Computadores. Profa. Débora Matos

Módulo 8 Entradas Digitais 24 Vdc Monitorado. Os seguintes produtos devem ser adquiridos separadamente para possibilitar a utilização do produto:

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

I. Conjunto Elemento Pertinência

Sistemas Numéricos. Tiago Alves de Oliveira

INF1005: Programação I. Algoritmos e Pseudocódigo

Modelo Comportamental

Resolução Comentada Unesp

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Manual Remessa Bancária

Prof. José Maurício S. Pinheiro - UGB

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Introdução a Programação Aula 01

Algoritmos APRENDENDO A PROGRAMAR COM C#

Figura 4.1: Diagrama de representação de uma função de 2 variáveis

MANUAL DO PUBLICADOR

Arquitetura TCP/IP. Apresentado por: Ricardo Quintão

CAI - Introdução. André Luís Duarte. exatasfepi.com.br

Uso de escalas logaritmicas e linearização

Inteligência Artificial

Circuitos Lógicos Aula 3

Linguagem de Programação I

Entropia, Entropia Relativa

Programação de Computadores I. Linguagem C Função

Hardware. Objetivos do Capítulo

SEO sem Limites - 3 Passos Básicos de SEO

Como Elaborar uma Proposta de Projeto

LOGO DO WEBSITE DA FUTURA APP

Corrente elétrica, potência, resistores e leis de Ohm

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

DIOCESE DE GUARABIRA. Pastoral Familiar O QUE NÃO É PLANEJAMENTO PASTORAL MISSIONÁRIO

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Aula 6 Corrente Alternada e Corrente Contínua

ENG1000 Introdução à Engenharia

BALANÇO PATRIMONIAL AMBIENTAL - EXERCÍCIO COMENTADO Prof Alan

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Curso de Sistemas de Informação Campus Guaíba Cursos de Informática Projeto de Inclusão Digital APOSTILA APOSTILA CONCEITOS BÁSICOS DE INFORMÁTICA

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Sistemas Distribuídos

Organização e Arquitetura de Computadores I

Transcrição:

Fundamentos de Programação Introdução Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador é receber, armazenar e manipular dados, produzindo informação Mas o computador: É trabalhador Possui muita energia Tem boa memória Não tem iniciativa Não é independente Não é criativo Precisa receber instruções nos mínimos detalhes: Programas de Computador Programa de Computador: seqüência de instruções coerentes que dirigem a CPU na execução de alguma tarefa. - 1 -

O que é a Lógica? O uso da palavra lógica está normalmente relacionado à coerência. Nossa razão pode funcionar desordenadamente. Por isso, a lógica estuda e ensina a colocar ordem no pensamento. A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta Utilizando a lógica: Anacleto é mais velho que Felisberto. Felisberto é mais velho que Marivaldo. Portanto, Anacleto é mais velho que Marivaldo. O silogismo (argumento composto de duas premissas e uma conclusão) ilustra outro objetivo da lógica, o estudo de técnicas de formalização e dedução que verificam a validade (ou não) de um argumento. Nos três exemplos abaixo, quais são válidos e quais são inválidos? Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal. O pinheiro é verde. O pinheiro é motorista. Então, o motorista é verde. Todos os peixes nadam. Todos os peixes têm escamas. Logo, todos os que têm escamas nadam. Lógica de programação Usa a ordem da razão na programação de computadores, objetivando a produção de soluções logicamente válidas (coerentes) e de qualidade para problemas (tarefas) que se deseja programar. Fases da programação (construção de um programa de computador) - 2 -

Algoritmo Algoritmo é uma seqüência de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999) Por que usar algoritmos? A lógica da solução fica representa de forma clara e o mais objetivamente possível, sem se preocupar com detalhes da linguagem de programação que será utilizada para traduzir a solução para o computador, se ela for representada, primeiramente, sob a forma de um algoritmo. O uso de algoritmos permite que, nesta fase de criação da solução lógica para o problema, seja possível focalizar nossa atenção naquilo que é importante: a lógica da construção da solução e não nos detalhes de implementação. Fases de programação (detalhes) Representação apenas da lógica da solução Também chamado de Código Fonte (*), é um arquivo texto. (conforme sintaxe da linguagem de programação utilizada). O computador não entende o Código Fonte. Interpretador (gera o código de máquina dinamicamente, a cada execução) Compilador (gera executável (exe), uma vez, em código de máquina) Somente 0 e 1 código binário (Linguagem de Máquina ou Código Objeto) Linguagem de Máquina (**) ou Código Objeto - 3 -

Definições: Um programa é a codificação de um algoritmo em uma linguagem de programação. (ASCENCIO, 1999) Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais (sintaxe) usadas para escrever programas de computador. Detalhes: O código fonte (*) instruções escritas em determinada linguagem de programação é um texto que precisa ser convertido (traduzido) para a linguagem do computador: linguagem de máquina (**). Se o método utilizado converte todo o texto (código fonte), para só depois executar\rodar o programa (agora um código objeto), dizemos que o programa foi compilado. O mecanismo (também um programa) que faz a conversão é chamado compilador. Se o método roda o próprio texto (código fonte), traduzindo linha a linha, o programa vai sendo utilizado na medida em que vai sendo traduzido, dizemos que o programa foi interpretado. A cada execução o programa precisa ser novamente interpretado pelo mecanismo interpretador. Sistema Binário A linguagem da máquina Internamente, o computador opera com o sistema binário (no lugar do tradicional sistema decimal) para simplificar o projeto e construção, acarretando redução de custo e maior confiabilidade. O termo binário deve-se ao fato dos circuitos eletrônicos que formam os computadores digitais serem capazes de distinguir apenas dois níveis de tensão: um valor positivo (nos PC's, cerca de +3 volts) para representar o valor binário 1 e um valor aproximado a 0 (zero volt) para representar o valor binário 0. Dois algarismos (0,1) dígitos binários (0,1) o elemento mínimo de informação nos computadores foi apelidado de bit (uma contração do inglês binary digit). Obs.: os discos magnéticos trabalham com positivo\negativo (também binário) e os discos óticos trabalham com reflexão e não reflexão da luz (também binário). Tanto as instruções quanto os dados precisam estar no sistema binário. - 4 -

Conversões Numéricas Decimal Binário 25 2 1 12 2 0 6 2 0 3 2 1 1 _2 1 0 Temos: 25 = 110012 Decimal Binário 101101 2 = 1 x 2 5 + 0 x 2 4 + 1 x 2 3 + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 101101 2 = 2 5 + 0 + 2 3 + 2 2 + 0 + 1 101101 2 = 32 + 8 + 4 + 1 = 45 (no sistema decimal) Os programas (sistema operacional, aplicativos) e os dados que estão em uso por um computador num determinado momento ficam carregados na memória RAM (Armazenamento no Diagrama de Von Neumann). A memória RAM é dividida em células denominadas palavras de 8 bits (0,1) = byte. Cada palavra tem um endereço lógico e armazena uma informação. Abaixo apresentamos um esquema parcial do conteúdo de uma memória RAM. Os dígitos binários representados em cada célula podem ser uma INSTRUÇÃO ou um DADO (um número ou um caractere). Endereço 0 Endereço 1 Endereço 2 01011011 01101110 00000001 (91 em decimal) (110 em decimal) (1 em decimal) - 5 -

Algoritmos Alguns detalhes Através da Lógica Estruturada, provou-se que três estruturas são suficientes para explicar a solução de qualquer problema: SEQÜÊNCIA; DECISÃO; REPETIÇÃO. Todos nós sabemos construir algoritmos. Se isso não fosse verdade, não conseguiríamos: sair de casa pela manhã; ir ao trabalho; decidir qual o melhor caminho para chegar a um lugar; voltar para casa, etc. Para que tudo isto seja feito é necessário uma série de entradas do tipo: a que hora acordar; que hora sair de casa; qual o melhor meio de transporte, etc. - 6 -

Exemplos de algoritmos: 1 - Um exemplo de algoritmo pode ser as instruções que um professor passa aos seus alunos em uma academia de ginástica. Por exemplo: Repetir 10 vezes os quatro passos abaixo: 1. Levantar e abaixar braço direito; 2. Levantar e abaixar braço esquerdo; 3. Levantar e abaixar perna esquerda; 4. Levantar e abaixar perna direita. 2 - Testar e trocar 10 lâmpadas. 3 - Um escritório de previsão do tempo armazena diariamente a temperatura média de uma determinada região. A tarefa é descobrir qual é a menor temperatura jamais registrada nos arquivos do escritório. Um possível algoritmo seria o seguinte: Início do algoritmo. o Pegue a primeira temperatura registrada. o Anote esta temperatura como a menor de todas as temperaturas. o Enquanto ainda houver registros de temperaturas, execute repetidamente e em ordem todas as instruções numeradas abaixo: 1. Pegue a próxima temperatura. 2. Se esta temperatura for menor que àquela registrada no momento como a menor então jogue fora a anteriormente registrada e anote a nova temperatura como a menor de todas. o Leia a temperatura que está anotada como a menor. Esta é a menor temperatura (informação que estávamos procurando). Fim do algoritmo. - 7 -

Como representar o Algoritmo Pode ser representado de forma gráfica ou textual (as três representações de algoritmo abaixo executam a mesma tarefa, tente descobri-la interpretando-os). Representação Gráfica (fluxograma) Representação Gráfica (Diagrama de Chapin) Representação Textual (Pseudocódigo ou Português Estruturado ou Portugol) ALGORITMO Media DECLARE N1, N2, Media REAL ESCREVA Digite as duas notas LEIA N1, N2 Media (N1+N2)/2 SE Media >= 7 ENTÃO ESCREVA "Aprovado" SENÃO ESCREVA Reprovado FIM_ALGORITMO Porque usar o Português Estruturado e não usar simplesmente o Português Coloquial? - 8 -

Método para construção de Algoritmos a. Compreender o problema. b. Definir os dados de entrada. c. Definir o processamento (procedimentos para transformar os dados de entrada em dados de saída). d. Definir os dados de saída/informação. e. Construir o algoritmo seguindo as regras que serão apresentadas nos próximos tópicos. f. Testar o algoritmo realizando simulações. Durante o curso, as soluções algorítmicas serão convertidas para a linguagem de programação C/C++. Obs.: C++ possui incrementos em relação à linguagem C. Tais incrementos dão suporte à programação orientada a objetos. A sintaxe é basicamente a mesma. - 9 -