Capítulo 2 Introdução à Programação

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

Fundamentos de Programação. Diagrama de blocos

Capítulo 2 Introdução à Programação Estrutura de Controle

2. ALGORITMOS. Unesp Campus de Guaratinguetá

SUMÁRIO PARTE I - INTRODUÇÃO... 8

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

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

Conteúdo programático

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Introdução à Informática

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

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

Algoritmo e Programação

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

Fundamentos de Sistemas Operacionais

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA ESCOLA TÉCNICA FEDERAL DE PALMAS SUPERVISÃO EDUCACIONAL

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

PROGRAMAÇÃO DE COMPUTADORES

Leiaute de arquivos XML para Carta-Circular 3254

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

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

CONTEÚDOS PROGRAMÁTICOS

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

Expressões Lógicas e Aritméticas. Professora Kátia Adriana Alves Leite de Barros katia.barros@pitagoras.com.br

2 Workshop processamento de artigos em serviços de saúde Recolhimento de artigos esterilizados: é possível evitar?

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Unidade 1: O Computador

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

Deadlocks. Sistemas Operacionais - Professor Machado

Aula 11: Desvios e Laços

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Banco de Dados I. Prof. Edson Thizon

Algoritmos e Estrutura de Dados I

Modelo Comportamental

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

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

PLANO MUNICIPAL DE SANEAMENTO BÁSICO PMSB PRODUTO IX METODOLOGIA PARA CRIAÇÃO DO SISTEMA DE INFORMAÇÕES PARA AUXÍLIO À TOMADA DE DECISÃO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO TRIÂNGULO MINEIRO CAMPUS PARACATU

Inteligência Artificial

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

5a. Aula - XML

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Centro de Hematologia e Hemoterapia do Paraná HEMEPAR Farm. Elvira Rosa Folda DVGQB Jul/2012

OBSERVAÇÕES: EXERCÍCIOS

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Projeto Manutenção SAP Web e Portal TRT

MBA em Gerenciamento de Projetos. Teoria Geral do Planejamento. Professora: Maria Erileuza do Nascimento de Paula

Os salários de 15 áreas de TI nas cinco regiões do Brasil

Engenharia)de)resolução)de)problemas)

Algoritmos e Programação de Computadores

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

Processo de Gerenciamento do Catálogo de Serviços de TIC

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

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

Aula 03. Processadores. Prof. Ricardo Palma

Consulta à Sociedade: Minuta de Resolução Complementar sobre Acreditação de Comitês de Ética em Pesquisa do Sistema CEP/CONEP

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

3.2. Bibliotecas. Biblioteca Professor Antônio Rodolpho Assenço, campus Asa Sul: Os espaços estão distribuídos da seguinte forma:

Redes de Computadores

Introdução a Algoritmos Parte 04

Estruturas de Repetição

Engenharia de Software II

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE EDUCAÇÃO. Elaborado por Gildenir Carolino Santos Grupo de Pesquisa LANTEC

Algoritmos e Tipos de Dados

SISTEMAS DISTRIBUÍDOS

AGRUPAMENTO DE ESCOLAS DE PÓVOA DE LANHOSO

8 Crie um pequeno sistema para controle automatizado de estoque, com os seguintes registros:

MODELO SUGERIDO PARA PROJETO DE PESQUISA

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Sistemas Distribuídos

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos

GUIA SOBRE A APLICAÇÃO DOS ASPECTOS LINGUÍSTICOS DA CARTILHA DE ADESÃO À AGENCE UNIVERSITAIRE DE LA FRANCOPHONIE

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

Manual do Usuário (Firma Inspetora) Versão 1.8. CMCP - Controle da Marcação Compulsória de Produtos

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

UNIVERSIDADE ESTADUAL PAULISTA. Apostila Pascal Ed Prof. Dr. Galeno José de Sena DMA/FEG CAPÍTULO 8

Probabilidade. Luiz Carlos Terra

EDITAL DE SELEÇÃO PARA MESTRADO 2016 PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO (UNIFEI)

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

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

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

Análise de Requisitos

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

COBRANÇA BANCÁRIA CAIXA

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

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Algoritmos com VisuAlg

ENGENHARIA DE SOFTWARE

Plano de Trabalho Docente Ensino Técnico

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

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Transcrição:

Tecnologia em Análise e Desenvolvimento de Sistemas INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Capítulo 2 Introdução à Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com

Plano de Ensino 2. Introdução à Programação Algoritmo (conceito, estruturas sequênciais, estruturas de seleção, estruturas de repetição) Apresentação de uma linguagem hipotética Solução de problemas através do computador hipotético Vetores Dados Estruturados definidos pelo usuário Erros (sintaxe, lógica). 2/26

Algoritmo Por exemplo na automação, os processo desempenhadas pelo homem passa a ser realizadas por máquinas. Seja dispositivos mecânicos (máquinas industriais) Seja dispositivos eletrônicos (computadores) Ou de natureza mista (robôs) A automatização segue uma sequencia ordenada de passos para a realização da tarefa são processos que garantem a sua repetibilidade. Para esta sequencia ordenada dá-se o nome de Algoritmo Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito e com um número finito de passos 3/26

Algoritmo Um algoritmo é qualquer procedimento computacional bem definido que recebe valores de entrada e produz valores de saída Para se ter um algoritmo é necessário: Que se tenha um número finito de passos; Que cada passo esteja precisamente definido, sem ambiguidades; Que exista zero ou mais entradas tomadas de conjuntos bem definidas; Que exista ações dentro de uma sequencia finita de passos Que exista uma ou mais saídas; Que exista uma condição de fim sempre atingida para quaisquer entradas e num tempo definido. 4/26

Algoritmo Portanto, algoritmo é: um procedimento passo a passo para a solução de um problema Uma sequencia detalhada de ações a serem executadas para realizar alguma tarefa Fases de um algoritmo Entrada: dados de entrada do algoritmo informações necessárias para que o algoritmo possa ser executado (préestabelecidas ou fornecidas no momento da execução). Teclado, mouse, arquivo... Processamento: procedimentos para chegar no resultado final avaliadas todas as expressões algébricas, relacionais e lógicas, assim como todas as estruturas de controle existentes no algoritmo (condição e/ou repetição); Saída: dados processados resultados do processamento (ou parte deles) são enviados para um ou mais dispositivos de saída, como: monitor, impressora, ou até mesmo a própria memória do computador ou um arquivo. 5/26

Algoritmo Tarefas Ler e escrever dados Avaliar expressões algébricas, relacionais e lógicas Tomar decisões com base nos resultados das expressões avaliadas Repetir um conjunto de ações de acordo com uma condição Exemplos: Escovação de dentes Troca de pneu Receita de bolo de chocolate 6/26

Tipos de Estruturas Estruturas Sequenciais O algoritmo segue uma sequencia linear A B C Estruturas de Seleção Seleção de um conjunto de ações, segundo uma determinada condição Representadas por expressões lógicas ou relacionais Se B então A Se B então A1 senão A2 Estrutura de Repetição Quando um trecho do algoritmo deve ser repetido Enquanto B repetir A Repetir A até B 7/26

Linguagem Hipotética Descrição Narrativa a forma de representação é descrita em linguagem natural Exemplo 1: Troca de pneu furado Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas Exemplo 2: Cálculo da média de um aluno Obter as notas da primeira e da segunda prova Calcular a média aritmética entre as duas notas Se a média for maio ou igual a 7, aluno aprovado, senão reprovado 8/26

Linguagem Hipotética Fluxograma Convencional representação gráfica em que formas diferentes implicam ações (instruções, comandos) distintos Inicio ou final do fluxograma Operação de entrada de dados Operação de saída de dados Operações de atribuição e chamada ou retorno de subalgoritmo Decisão Seta de fluxo de dados Conector para particionar o diagrama 9/26

Linguagem Hipotética Fluxograma Convencional Exemplo do cálculo da média do aluno 10/26

Linguagem Hipotética Pseudocódigo Estruturação de um algoritmo com uma linguagem que permite a tradução direta para uma linguagem de programação específica Algoritmo <nome_do_algoritmo> <declaracao_de_variaveis> <subalgoritmos> inicio <escopo_do_algoritmo> fim Algoritmo: palavra que indica o inicio do algoritmo em pseudcódigo <nome_do_algoritmo>: nome simbólico dado ao algoritmo <declaracao_de_variaveis>: porção opcional onde são declaras as variáveis globais usadas no algoritmo <subalgoritmos>: porção opcional onde são definidos subalgoritmos Inicio e Fim: delimitam respectivamente o inicio e fim do conjunto de instruções do corpo do algoritmo 11/26

Computador Hipotético Representação do algoritmo de cálculo da média de um aluno na forma de pseudocódigo Algoritmo Media var N1, N2, Media inicio Leia N1, N2 Media := (N1+N2)/2 Se Media >= 7 entao Escreva Aprovado senao Escreva Reprovado fim 12/26

Erros Um algoritmo pode conter erros devido a instruções que não estão em uma sequencia correta, a sintaxe está errada, erro de lógica, tipos de dados ou informações que não existam Alguns erros que podem ocorrer 1. Algoritmo Media 2. var N1, N2, Media: real 3. inicio 4. Media <= (N1+N2)/2 5. Leia N1, M2 6. Se Media < 7 entao 7. Escreva Aprovado 8. senao 9. Escreva Reprovado 10. fim 13/26

Erros Algumas instruções foram alteradas para simular erros As linhas 4 e 5 estão invertidas, não se pode calcular a média sem antes saber quais são as notas Na linha 5 temos uma instrução onde o programa pede informações que serão armazenadas em variáveis. Perceba que a variável M2 não existe. Este tipo de erro é bastante comum Na linha 6, onde acontece uma comparação lógica, o programa escreverá aprovado se a média for menor que 7. Na realidade a instrução deverá ser média >= 7, ou seja, se a expressão for verdadeira então o programa escreverá aprovado, caso contrario (se a média for <7) então o programa escrevera reprovado Máquinas não podem: Tomar decisões com base em premissas Corrigir comandos mal redigidos Descobrir a intenção do programador Resolver ambiguidades 14/26

Linguagem de Alto Nível Estruturação de algoritmos Linguagens de alto nível se afastam da linguagem de máquina e se aproximam da lógica humana Tarefa complexa para iniciantes, pois é dirigida a orientar uma máquina (e não pessoas) Vantagens: Mais próxima da lógica humana Menor tempo de desenvolvimento Maior portabilidade 15/26

Característica de uma linguagem Rigidez sintática Compilador é um tradutor sobre um idioma com construções muito bem definidas Palavras da linguagem natural utilizadas com menos liberdade Rigidez semântica Não se pode lidar com ambiguidades (intenções devem sem expressas de forma exata) O computador é um ótimo cumpridor de ordens, porém não tem idéia sobre elas 16/26

Manipulação de Dados A manipulação de dados é uma das principais funções do computador São necessários diferentes tipos de dados (computador só manipula números internamente) Tipo de dados Objeto que tem em comum o mesmo comportamento diante de um conjunto definido de operações. Exemplo: Números suportam operações matemáticas Letras suportam operações como concatenação 17/26

Tipos de Dados Linguagens manipulam um conjunto limitado de tipos, normalmente: Números inteiros 1, 2, 3, etc Números reais 1.1, 5.6, ¾ Letras A, B, C, etc Objetos lógicos (booleanos) Oriundos da lógica matemática ou de Boole Baseada em um conjunto de apenas dois valores: 1 e 0 ou Verdadeiro (V) e Falso (F) 18/26

Valor Lógico Operandos de uma operação lógica são necessariamente valores lógicos Um valor lógico pode ser obtido como resultado de uma afirmação ou proposição. Exemplos: Cachorros são mamíferos Cachorros são aves. Homens pensam. 5 > 3 7 = 3 Operadores Lógicos são operações que se definem sobre o conjunto {V,F} Sempre opera com valores lógicos e tem como resultado um valor lógico Operadores lógicos (conectivos) úteis na construção de algoritmos: e ou não 19/26

Valor Lógico Tabela Verdade Binários e V F ou V F Unário não V F V V F V V V F V F F F F V F Precedência dos operadores lógicos 1. Parênteses 2. não 3. e, ou 20/26

Operadores Pseudocódigo Aritméticos (+, -, *, /) Potenciação (pot) 10 pot 2 = 100 2 pot 10 = 1024 Radiciação (raiz) 9 raiz 2 = 3 1024 raiz 10 = 2 Precedência dos operadores aritméticos 1. Parênteses 2. pot, raiz 3. *, /, div, resto 4. +, - Divisão inteira (div) 10 div 4 = 2 22 div 6 = 3 Resto de divisão inteira (resto, mod) 10 resto 4 = 2 22 resto 6 = 4 21/26

Constantes de Variáveis Durante a execução de um programa, dados/informações ficam armazenadas temporariamente em memória Para que possam ser manipulados, é preciso que haja algum identificador Informa o local da memória (endereço) Constante: definido inicialmente e não é mais modificado Variável: pode ser alterado durante a execução Ambas identificadas por um nome 22/26

Constantes de Variáveis Regras e Convenções de Nomenclaturas Convém utilizar nomes significativos às variáveis e constantes de acordo com os elementos (ou valores) que armazenarão para manter o algoritmo o mais legível e documentável possível. Mnemônicos: nomes ou abreviatura que lembram o uso da variável no algoritmo Nomes de variáveis: podem começar com qualquer letra minúscula e os caracteres $ ou _, porém não podem começar com números. Caso o nome de uma variável seja composto por mais de uma palavra, a primeira letra de cada palavra deve ser em maiúscula. Exemplos de nomes de variáveis: x, y, resultado, valordex, valordey, ligado,... Nomes de constantes: devem ser escritos em letras maiúsculas. Usamos underline (_) para separar nomes compostos. Exemplos de nomes de constantes: TAMANHO, PARAR_DE_EXECUTAR,... 23/26

Teste de Mesa Retrato da memória a cada passo de execução de um trecho de código Consiste na verificação do conteúdo de cada variável após a execução de cada instrução Finalidade: verificar a correção da implementação Exemplo: 24/26

Bibliografia BIBLIOGRAFIA BÁSICA: SCHILDT H., C Completo e Total, Makron Books, São Paulo, 1997. FEDELI R. D.; POLLONI E. G. F; PERES, F. E., Introdução à Ciência da Computação, Cengage Learning, 2010. MEDINA M; FERTIG C., Algoritmos e Programação Teoria e Prática, Novatec, São Paulo, 2006. BIBLIOGRAFIA COMPLEMENTAR: GUIMARÃES A. e LAGES N., Algoritmos e Estruturas de Dados, Ed. LTC Livros Técnicos e Científicos, Rio de Janeiro, 1985. JAMSA K., Salvo pelo C++, LTC Livros Técnicos e Científicos Editora, 1994. ALCADE E. Informática Básica e outros Ed. Makron Books São Paulo 1991. SALIBA, CARAM W. L. Técnicas de Programação: uma abordagem estruturada, Ed. Makron, McGrawHill, São Paulo, 1992. MACHADO F. M. Ed. LTC, Introdução à Arquitetura de Sistemas Operacionais Livros Técnicos e Científicos, Rio de Janeiro, 1992. DAVIS W. S. D. Sistemas Operacionais: uma visão sistemática Ed. Campus, Rio de Janeiro, 1990. Instituto Brasileiro de Pesquisa em Informática Técnicas de Programação com Pascal IBPI Rio de Janeiro, 1993. VASCONCELOS A., Computadores Eletrônicos Digitais Ed. LTC Livros Técnicos e Científicos, Rio de Janeiro. MONTEIRO, M. Introdução a Organização de Computadores Ed. LTC Livros Técnicos e Científicos, Rio de Janeiro. EBERSPÄCHER A. L., FREDERICO H. Algoritmos e Estruturas de Dados Forbellone Ed. Makron, McGrawHill, São Paulo. 25/26

Tecnologia em Análise e Desenvolvimento de Sistemas INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Capítulo 2 Introdução à Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com