Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Programação ESCOLA POLITÉCNICA DA UNIVERSIDADE DE PERNAMBUCO Profª Gilka Rocha Barbosa CCMP0016 – Introdução à Programação � Carga Horária Semestral: 60 horas � Número de Créditos: � Teóricos: 3 � Práticos: 1 Introdução à Computação 2 � Práticos: 1 � Pré-Requisitos: Não há � Procedimentos e algoritmos fundamentais de sistemas computacionais; � Estudo pormenorizado dos recursos de linguagens de alto nível; Ementa Introdução à Computação 3 � Desenvolvimento e implementação de programas; � Modularidade, testes, depuração e documentação de programas. Objetivos de aprendizagem �Introduzir a programação de computadores através do estudo de uma linguagem algorítmica e de exercícios práticos Introdução à Computação 4 exercícios práticos � Breve história da computação; � Computadores: unidades básicas, instruções, programa armazenados, endereçamento, programas em linguagem de máquina; � Conceitos de linguagens algorítmicas: expressões, comandos seqüenciais, seletivos e Conteúdo Introdução à Computação 5 expressões, comandos seqüenciais, seletivos e repetitivos. � Entrada e saída; � Subprogramas e funções; � Variáveis estruturadas: vetores e matrizes; � Escopo de identificadores; � Extensa prática de programação e depuração de programas. Avaliação - Provas individuais � 1EE – Testes para complemento da nota � 1o teste o 12/09 (quinta-feira) � 2o teste (30 minutos) o 07/10 (segunda-feira) - Alunos de A a k Introdução à Computação 6 o 07/10 (segunda-feira) - Alunos de A a k o 10/10 (quinta-feira) - Alunos de L a Z � 2EE (50 minutos) o 11/11 (segunda-feira) - Alunos de L a Z o 14/11 (quinta-feira)– Alunos de A a k � 2a Chamada – 21/11 (quinta-feira) � Final – 02/10 (segunda-feira) Fontes de pesquisa Ascencio, Ana Fernanda. Fundamentos da programação de computadores. São Paulo: Prentice Hall, 2002. Farrer, Harry; Algoritmos Estruturados. 3ª ed., LTC, 1999. Setzer, V; Terada, R. Introdução à computação e à construção de algoritmos, McGraw-Hill, 1991. Introdução à Computação 7 construção de algoritmos, McGraw-Hill, 1991. Deitel, H. M., Deitel, P. J. Como programar em C. 2ª ed., LTC, 1999. Tremblay, J. P. Bunt, R. B. Ciência dos computadores. McGraw-Hill, 1983. Roberts, E. The art and science of C, Addison-Wesley, 1995 Consenso �Uso de computadores apenas quando permitido �Evitar conversas em paralelo �Começar pontualmente Introdução à Computação 8 �Começar pontualmente �Freqüência de acordo com as Normas da Universidade �Providência de material para estudo Conceitos � O que é um COMPUTADOR? Introdução à Computação 9 Máquina que recebe dados (entrada), processa conforme programado, e fornece dados (saída). Aplicativos Sistema OperacionalWindowsDOS Linux Sistemas de Informação SGBD Word CAD Estrutura geral de um sistema de computação Introdução à Computação 10 Componentes Físicos Interface de hardware Componentes Básicos Periféricos Componentes Multimídia Componentes de rede Linux Monitor Teclado Processador A evolução dos sistemas de computador � Primeira geração (aproximadamente entre 1951 e 1959) � Tecnologia de válvulas. � Tem como marco inicial o UNIVAC, construído em 1951. � Segunda geração(aproximadamente entre 1955 e 1965) � Caracterizada pelos computadores transistorizados. � Tem como marco o TRADIC, construído em 1955, além da criação das linguagens FORTRAN e COBOL, Introdução à Computação 11 das linguagens FORTRAN e COBOL, � Terceira geração (aproximadamente entre 1965 e 1975) � Circuitos Integrados, os Chip’s. Fios, transistores e outros componentes em um único chip. � Quarta geração(aproximadamente a partiir de 1975) � Microcomputadores � Tem como marco inicial o chip 8080 da Intel (1974), � Quinta geração .... � Atual geração dos computadores, notebooks, palmtops e telefonia móvel, multimídias, computadores inteligentes e a realidade virtual. Mark I - 1944 • Universidade de Harvard e a IBM • Ocupava 120 m2 • Tinha milhares de relês e fazia um barulho infernal. • Uma multiplicação de números de 10 dígitos levava 3 segundos para Primeira geração Introdução à Ciência da Computação 12 ENIAC: Eletronic Numeric Integrator And Calculator 1946 • 18.000 válvulas, • conseguia fazer 500 multiplicações por segundo 10 dígitos levava 3 segundos para ser efetuada. Primeira geração Introdução à Computação http://www.tecmundo.com.br/infografico/9421-a-evolucao-dos-computadores.htm Segunda geração Introdução à Computação Terceira geração Introdução à Computação Quarta geração Introdução à Computação Quinta geração Introdução à Computação Introdução à Ciência da Computação 18 Primeiro HD criado pela IBM em 1956 Capacidade: 4,7 MB Peso: 1 tonelada Preço: mais de US$ 1.000.000,00 Introdução à Computação Introdução à Computação Introdução à Ciência da Computação 21 Celular....... Ericson MTA - 1956 Motorola Dynatac 8000X – 1973 Introdução à Computação Motorola Dynatac 8000X – 1973 25 cm de comprimento 7 cm de largura, 1 kg Bateria 20 minutos. Mainframe: grande capacidade de memória e velocidade de processamento Microcomputador: utilizado em aplicações pessoais e domésticas ou como terminais de sistemas multiusuário Supercomputador: voltado à resolução de Tipos de computadores Introdução à Computação 23 Supercomputador: voltado à resolução de problemas que exigem grande capacidade de processamento em termos de velocidade e precisão de resultados Cluster de computador: conjunto de sistemas de computadores independentes e ligados em rede, mas que podem ser configurados para realizarem em conjunto um determinado trabalho de processamento. Aplicativos Sistema OperacionalWindowsDOS Linux Sistemas de Informação SGBD Word CAD Estrutura geral de um sistema de computação Software Introdução à Computação 24 Componentes Físicos Interface de hardware Componentes Básicos Periféricos Componentes Multimídia Componentes de rede Linux Hardware Tecnologias de hardware Arquitetura básica de um sistema de computador Unidade central de processamento Unidade de entrada Unidade de saída Introdução à Computação 25 Unidade de memória Unidade de entrada � Formada pelos equipamentos que permitem a inclusão de dados a serem processados pelo sistema de computador. � A evolução das tecnologias de entrada de dados busca métodos, técnicas e ferramentas cada vez mais fáceis de utilizar processamento Unidade central de processamento Unidade de entrada Unidade deUnidade de memória Unidade deUnidade de saída Introdução à Computação 26 busca métodos, técnicas e ferramentas cada vez mais fáceis de utilizar Teclados Dispositivos indicadores Dispositivos de leitura magnética Dispositivo de leitura ótica Dispositivos de captura de imagens Dispositivos de captura de áudio Dispositivos de captura de sinais Unidade de memória principal � Formada pelos dispositivos que armazenam os dados e as instruções em processamento pela Unidade Central de Processamento (UCP/CPU). � Os dados e os programas são armazenados na memória principal durante o processamento. Posteriormente, os resultados são liberados processamento Unidade central de processamento Unidade de entrada Unidade deUnidade de memória Unidade deUnidade de saída Introdução à Computação 27 Posteriormente, os resultados são liberados para o armazenamento em memória secundária ou para a unidade de saída. � A memória principal é constituída por diferentes componentes eletrônicos fabricados com materialsemicondutor e denominados chips. Entre os chips de memória, destacam-se: � RAM (Random Access Memory). � ROM (Read Only Memory). Unidade de memória secundária � Utilizada em virtude da limitação da memória principal. � Dispositivos de armazenamento mais baratos que a memória principal e viabilizam o armazenamento de grandes volumes de dados por períodos prolongados. � apresenta como desvantagem uma menor velocidade processamento Unidade central de processamento Unidade de entrada Unidade deUnidade de memória Unidade deUnidade de saída Introdução à Computação 28 � apresenta como desvantagem uma menor velocidade de acesso em virtude de empregarem mecanismos eletromecânicos para leitura e gravação dos dados. � meios de armazenamento � Meio magnético � Fitas magnéticas. � Discos magnéticos � Meio ótico � CD (compact disk). � DVD (Digital Video Disk). Memória processamento Unidade central de processamento Unidade de entrada Unidade deUnidade de memória Unidade deUnidade de saída 1 Byte 20 8 bits 1 Kilobyte (KB) 210 1024 bytes 1 Megabyte (MB) 220 1024 kilobytes 1 Gigabyte (GB) 230 1024 megabytes Introdução à Computação 29 1 Gigabyte (GB) 2 1024 megabytes 1 Terabyte (TB) 240 1024 gigabytes 1 Petabyte (PB) 250 1024 terabytes 1 Exabyte (EB) 260 1024 petabytes 1 Zettabyte (ZB) 270 1024 exabytes 1 Yottabyte (YB) 280 1024 zettabytes Tabela ASCII American Standard Code for Information Interchange Introdução à Computação 30http://pt.wikipedia.org/wiki/ASCII Unidade Central de Processamento �Unidade de controle. Comanda todo o sistema de processamento através de códigos especiais (instruções), que indicam ao computador as operações que ele deve realizar e quais os dados a que processamento Unidade central de processamento Unidade de entrada Unidade deUnidade de memória Unidade deUnidade de saída Pastilha de silício composta por duas unidades: Introdução à Computação 31 as operações que ele deve realizar e quais os dados a que elas se referem �Unidade de aritmética e lógica Formada pelos componentes que realizam cálculos matemáticos e comparações lógicas. �Registradores. Armazenam as instruções e dados em processamento Unidade de saída � Formada pelos equipamentos que permitem apresentação de resultados processados pelos sistemas. � As tecnologias de saídas de dados têm evoluído processamento Unidade central de processamento Unidade de entrada Unidade deUnidade de memória Unidade deUnidade de saída Introdução à Computação 32 � As tecnologias de saídas de dados têm evoluído no sentido de proporcionar resultados mais atraentes e fáceis de utilizar Dispositivos de saída em vídeo Dispositivos de saída impressa Dispositivos de saída sonora � Instrução é um comando que pode ser decodificado e executado � Algoritmo expressa formalmente uma solução para um problema através de um conjunto finito de passos, que, ao ser executado, opera certas estruturas de dados, produz resultados e cumpre Software Introdução à Computação 33 estruturas de dados, produz resultados e cumpre determinado objetivo � Programa é um algoritmo expresso em linguagem de um sistema de computador é capaz de executar � Software é o conjunto de programas que um equipamento é capaz de executar, é uma solução para determinado problema Software Software Exemplo Básico Sistemas Operacionais Loader Compiladores Link-editores Suporte Gerenciador de rede Hardware Usuário Software aplicativo / suporte Hardware Software básico Introdução à Computação 34 Controle de espaço Segurança Aplicativo Processador de texto Planilha eletrônica Edição gráfica Aplicativo específico Sistema de contabilidade Cálculos de estruturas Folha de pagamento Usuário/ Problema Software de suporte Ferramentas de desenvolvimento de software empregadas para o desenvolvimento de outro software. � Gereciadores de Banco de Dados � Gerenciadores de rede Introdução à Computação 35 � Gerenciadores de rede � Linguagens de programação. � Tradutores de linguagens de programação. � .... Linguagem de programação � Conjunto de termos (vocabulário) e de regras (sintaxe) que permitem a formulação de instruções a um computador. Introdução à Computação 36 1ª Geração: Linguagens Binárias 2ª Geração: Linguagens Assembly 3ª Geração: Linguagens Alto-Nível 4ª Geração: Linguagens Consulta 5ª Geração: Linguagens Naturais Nível de Abstração Consumo de Recursos de Facilidade - - 1ª 2ª Linguagens de Programação Introdução à Computação 37 de Máquina Facilidade de Programação + + 3ª 4ª 5ª Linguagens de Programação • Trecho de código em C a=5; b=10; c=a+b; Introdução ao Scilab • Código em Assembly (MIPS) ADDi $t0,$zero,5 //Adiciona-se ao registrador t0 o valor 5 ADDi $t1,$zero,10 //Adiciona-se ao registrador t1 o valor 10 ADD $t2,$t0,$t1 //Soma-se os valores contidos nos registradores t0 (5) e t1 (10) e atribui o resultado ao registrador t2 Algoritmo � Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. � Estas tarefas não podem ser redundantes nem subjetivas na sua Introdução à Computação 39 redundantes nem subjetivas na sua definição, devem ser claras e precisas. Exemplo de Algoritmo Sacar dinheiro num banco 24 horas Passo 1: Ir até um banco 24 horas. Passo 2: Colocar o cartão. Passo 3: Solicitar a quantia desejada. Passo 4: Se o saldo for maior ou igual à quantia desejada, sacar; Introdução à Computação 40 quantia desejada, sacar; caso contrário, escolher outro valor e refazer o Passo 2 . Passo 5: Retirar o cartão. Passo 6: Sair do banco 24 horas. Representação de Algoritmos � Propriedades de um algoritmo: � a descrição deve ser finita; � Ser objetivo nas instruções; � Usar somente um verbo por frase; � Escrever textos simples, para leigos; � Usar frases curtas e simples; Introdução à Computação 41 � Usar frases curtas e simples; � Usar palavras que não tenham sentido dúbio. � Teste de mesa � Testes de verificação da corretude de um algoritmo de forma simples e interativa. 1. Somar três números 2. Fazer um sanduíche 3. Trocar uma lâmpada Algoritmo - exemplos Introdução à Computação 42 3. Trocar uma lâmpada 4. Ir para a escola Método para construção de algoritmos a)Ler atentamente o enunciado, destacando os pontos mais importantes; b)Definir os dados de saída � Quais dados serão gerados a)Definir os dados de entrada Introdução à Computação 43 a)Definir os dados de entrada � Quais dados serão recebidos d) Definir o processamento � Quais cálculos serão efetuados e quais as restrições para esses cálculos. e) Construir o algoritmo utilizando uma representação escolhida; f) Testar o algoritmo realizando simulações. Representação de algoritmos Descrição narrativa Analisar o enunciado do problema e escrever os passos a serem seguidos para resolução do problema utilizando uma linguagem natural. Vantagem Não é necessário aprender nenhum novo Introdução à Computação 44 Não é necessário aprender nenhum novo conceito. Desvantagem a linguagem natural abre espaço para várias interpretações, o que posteriormente dificultará a transcrição desse algoritmo para programa. Analisar o enunciado do problema e escrever os passos a serem seguidos para resolução do problema utilizando símbolos gráficos predefinidos. Vantagem Representação de algoritmos Fluxograma Introdução à Computação 45 Vantagem O entendimento de elemento gráfico é mais fácil que o entendimento de textos. DesvantagemÉ necessário aprender a simbologia dos fluxogramas e o algoritmo resultante não apresenta muitos detalhes dificultando sua transcrição para um programa. Conjunto de símbolos utilizados no fluxograma Início e fim do algoritmo Indica o sentido do fluxo de dados, serve exclusivamente para conectar os símbolos existentes Representação de algoritmos Fluxograma Introdução à Computação 46 existentes Cálculos e atribuições de valores Entrada de dados Saída de dados Tomada de decisão, indicando a possibilidade se desvios Representação de algoritmos Pseudocódigo, Portugol ou Português estruturado Analisar o enunciado do problema e escrever os passos a serem seguidos para resolução do problema por meio de regras predefinidas. Vantagem a passagem do algoritmo para qualquer linguagem de Introdução à Computação 47 a passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas da linguagem de programação. Desvantagem é necessário aprender as regras do pseudocódigo a) Descrição narrativa Passo 1: Receber os dois números que serão somados. Passo 2: Somar números. Passo 3: Mostrar o resultado obtido. Exemplo de algoritmo Mostrar o resultado da soma de dois números c) Pseudocódigob) Fluxograma Introdução à Computação 48 Início S = N1 + N2 N1, N2 S Fim c) Pseudocódigo ALGORITMO soma DECLARE N1, N2, S : NUMÉRICO INICIO ESCREVA (“Digite dois números”) LEIA (N1, N2) S ← N1 + N2 ESCREVA (“Soma = “, S) FIM b) Fluxograma Exercícios - Usando pseudocódigo 1. Faça um algoritmo para mostrar o resultado da divisão de dois números; 2. Faça um algoritmo para calcular a média aritmética entre duas notas de um aluno e para mostrar a situação desse aluno, que pode ser aprovado (média maior ou igual a 7,0) ou Introdução à Computação 49 ser aprovado (média maior ou igual a 7,0) ou reprovado; 3. Faça um algoritmo para calcular o novo salário de um funcionário. Sabe-se que os funcionários que possuem salário atual até R$ 500,00 terão aumento de 20%, os demais terão aumento de 10%. Estrutura de um algoritmo Algoritmo Processamento Dados de entrada Dados de saída Introdução à Computação 50 Algoritmo <declaração de variáveis> Início <comandos> Fim. Estrutura de um algoritmo Algoritmo soma declare A, B, C : inteiro; Início leia (A, B); Introdução à Computação 51 leia (A, B); C ← A + B; escreva(‘O valor da soma é:’, C); Fim. Conceitos básicos - Dados � Os dados são representações de abstrações acerca do mundo. � São classificados em tipos. � Tipos podem ser primitivos ou construídos � Tipos primitivos são os tipos fornecidos Introdução à Computação 52 � Tipos primitivos são os tipos fornecidos pela linguagem de programação de forma intrínseca. Inteiros, reais, caracteres, lógico São a base para a construção de novos tipos Tipos de Dados � Numérico � Números � Inteiros � Reais � Caractere Introdução à Computação 53 � Caractere � Símbolos da tabela ASCII � Literal � Agregado de caracteres � Lógico � verdadeiro / falso Tipos de Dados � Constante � Determinado valor que não se modifica durante a execução de um programa. � Pode ser numérica, lógica e literal. � Pode ou não receber um identificador. Introdução à Computação 54 � Pode ou não receber um identificador. � Pode aparecer dentro de expressões. Ex: num + 2 - 5/val Tipos de Dados � Variáveis � Áreas reservadas na memória do computador para armazenar um tipo de dado determinado. � São posições de memória, às quais deve- Introdução à Computação 55 � São posições de memória, às quais deve- se associar nomes (identificadores) e um tipo de dado. � O conteúdo pode ser alterado durante a execução do programa � Só podem armazenar um valor a cada instante Tipos de Dados � Variáveis x Constantes a ← b + 5 � a, b e 5 são variáveis ou constantes? Introdução à Computação 56 Atributos das variáveis � Toda variável tem �um nome (identificador) �um tipo de dado �um valor Introdução à Computação 57 �um valor val1 val2 realinteiro x a Memória Nomes ou identificadores � Regras para definir o nome ou identificador (nome das variáveis, constantes, programas...): � Só podem conter letras e dígitos; � Primeiro caractere deve ser uma letra; � Letras maiúsculas e minúsculas podem ser consideradas caracteres diferentes; Introdução à Computação 58 consideradas caracteres diferentes; � O único caractere especial aceito é o underline; � Palavras reservadas não podem ser usadas. val1 val2 realinteiro x a Memória Exemplo de identificadores � Identificadores válidos A a nota � Identificadores inválidos 5b e 12 x-y Introdução à Computação 59 Nota NOTA a32 nota_1 SAT case prova 2n Tipos das variáveis � Numérico � Inteiros -28, 156 � Reais 23.45, -9.36 Lógico ou Boleano val1 val2 realinteiro x a Memória Introdução à Computação 60 � Lógico ou Boleano � Falso � Verdadeiro � Caractere ´a´, ´b´ � Literal ´aluno’, ´1 + 2’, ou “aluno”, “1 + 2” realinteiro Valor das variáveis Valor: a variável contém um valor quando está sendo usada x a Memória Introdução à Computação 61 val1 val2 inteirointeiro Atenção! Uma variável sem inicialização poderá conter um valor qualquer e imprevisível. Costuma-se dizer que contém lixo. Variáveis compostas homogêneas � Identificadas por um mesmo nome, individualizadas por índices, cujo conteúdo é do mesmo tipo. Exemplo 1: Notas de 10 alunos (Vetor): N1 6,0 7,0 9,0 6,0 5,5 9,1 10,0 4,7 7,4 8,6 1 2 3 4 5 6 7 8 9 10 Introdução à Computação 62 N1[3] referencia o terceiro elemento, cujo conteúdo é 9,0 Exemplo 2: Notas de 10 alunos em dois semestres (Matriz): N2 N2[2,3] referencia o terceiro elemento da segunda linha, cujo conteúdo é 1,0 1 6,0 7,0 9,0 6,0 5,5 9,1 10,0 4,7 7,4 8,6 2 10,0 8,0 1,0 0,0 8,0 7,0 10,0 4,0 3,9 2,7 1 2 3 4 5 6 7 8 9 10 Declaração de variáveis declare <identificador> : <tipo de dado> � Exemplos: declare X : inteiro; Introdução à Computação 63 � declare X : inteiro; � declare Y : real; � declare Z : caractere; � declare K, M, N : lógico; Operações com variáveis � Variáveis devem ser declaradas Exemplo: <variável>: <tipo>; � As variáveis são modificadas através de um comando de atribuição (=, �, ⇐⇐⇐⇐, := ) ou de leitura Exemplo: Ler <variável>; a � 3; Introdução à Computação 64 a � 3; a � a + 2; � As variáveis podem ser impressas Exemplo: Escrever (a); � Existem condições � para testar se a operação pode ser executada � para verificar o resultado (falso/verdadeiro) Atribuições � Armazena um valor em uma variável. � ex: X ← 5; Nome ← ‘fulano’; Z X + 9 * 15; Introdução à Computação 65 Z ← X + 9 * 15; Y ← 12 - x + 5; � Qual o resultado de ??A ← 4 B ← 5 A ← B B ← A Operações � Conjunto de ações a serem executadas sobre um conjunto de objetos � Meio pelo qual incrementamos, decrementamos, comparamos e Introdução à Computação 66 decrementamos, comparamos e avaliamos dados no computador. � Tipos � Monoádicas (-x) � Diádicas (a+b) Combinações de variáveis, constantes e operadores em uma única sentença, que têm como finalidade a obtenção de um resultado. As expressões mais comuns são as aritméticas. Expressões Operações Introdução à Computação 67 As expressões mais comuns são as aritméticas. Operadores Símbolos que representam as operações Tipos básicos: aritméticos, relacionais, lógicos e atribuição Linearização de expressão ((2/3-(5-3))+1)*5 TradicionalComputacional Introdução à Computação 68 ((2/3-(5-3))+1)*5 Operadores Aritméticos � Utilizados para obter resultados numéricos. Operação Operador Exponenciação ** , ^ Radiciação raiz Multiplicação * Introdução à Computação 69 Multiplicação * Divisão / Divisão inteira div, quociente Resto da divisão resto Adição + Subtração - Operação Operador Igual a = Maior que > Menor que < Maior ou igual a >= Operadores Relacionais � Implementam comparações entre os dados Introdução à Computação 70 Maior ou igual a >= Menor ou igual a <= Diferente de <> Operação Operador Conjunção OU Disjunção E Operadores Lógicos � Utilizam a lógica booleana para a construção de expressões condicionais Introdução à Computação 71 Disjunção E Negação NÃO Tabela Verdade Negação A não A F V V F A B Conjunção Disjunção Introdução à Computação 72 A B Conjunção A ou B Disjunção A e B V V V V V F V F F V V F F F F F Prioridade das operações � Prioridade das Operações � Potências e operações monoádicas � Multiplicações e divisões � Soma e Subtração Prioridade 1: parênteses 2: funções 3: unário 4: ** ^ Introdução à Computação 73 � Parênteses alteram a ordem de execução � Segue-se da esquerda para a direita em caso de indeterminação. 5: * 6: / 7: + e - 8: relacionais 9: NÃO 10: E 11: OU Variáveis Relações Operadores lógicos - exemplo Introdução à Computação 74 Variáveis Relações Operadores lógicos - exercício Introdução à Computação 75 Operadores lógicos - exercício Variável Tipo Conteúdo X numérica 2 Y numérica 5 Z numérica 9 NOME literal "MARIA" SIM lógica FALSO Introdução à Computação 76 a) X + Y > Z e NOME = “MARIA” 2 + 5 > 9 e “MARIA”= “MARIA” falso e verdadeiro falso b) SIM ou Y ≥ X falso ou 5 ≥ 2 falso ou verdadeiro verdadeiro c) não SIM e quociente (Z,Y) + 1 = X não falso e quociente (9,5) + 1 = 2 não falso e verdadeiro verdadeiro d) X2 < Z + 10 ou NOME = “JORGE” e SIM “MARIA” = “JORGE” e SIM ou 4 < 19 falso e falso ou verdadeiro falso ou verdadeiro verdadeiro Funções � Funções � sen(x), cos(x), abs(x), int(x), log(x), raiz(x) Introdução à Computação 77 Exercícios 4. Se x possui o valor inicial 15 e se forem executadas as seguintes atribuições na ordem em que aparecem, qual o valor final de x? x ← x + 2 x ← x - 6 Introdução à Computação 78 x ← x - 6 x ← x/2 x ← 2 + 3 * x 5. Qual a seqüência de operações necessárias para trocar os valores das variáveis x, y e z de modo que x fique com o valor de y, y fique com o valor de z e z fique com o valor de x? Atribuição � Atribui valores ou operações a variáveis. <identificador> ← <expressão | identificador> ←←←← := = ⇐⇐⇐⇐ Introdução à Computação 79 � ex: X ← 4; X ← x + 1; y ← ‘aula’; teste ← “falso”; leia (<identificador> [,<identificador> [ ... ] ] ); � Captura valores do dispositivo de entrada especificado (Padrão = teclado). Comando de entrada Palavra- chave Nome das variáveis nas quais serão armazenados o valores provenientes do meio de entrada Introdução à Computação 80 especificado (Padrão = teclado). � Os dados recebidos são armazenados em variáveis. � Pode conter mensagens. leia (a) leia (g, r, b) leia (‘Digite seu nome: ‘, nome) escreva ( <expressão> ); � Envia a expressão para o dispositivo de saída Comando de saída Palavra- chave Conteúdo que será mostrado através de um meio de saída. Introdução à Computação 81 � Envia a expressão para o dispositivo de saída especificado (Padrão = tela). � Expressão pode ser uma combinação de variáveis, constantes e mensagens separadas por vírgulas. escreva (x) escreva (‘Conteúdo de Y = ‘, y) escreva(“O fatorial de”, N, " é ", fat); Faça um Teste de Mesa do algoritmo PRIME. algoritmo PRIME declare MA, AA, MES, ANO, A, R, T, CONT : numérico início leia (“Informe o mês e o ano atuais”, MA, AA) leia (“Informe o mês e o ano do seu nascimento”, MES, ANO) se MES <= MA A ← AA - ANO R ← MA - MES senão A ← AA – ANO – 1 R ← 12 – MES + MAR ← 12 – MES + MA fim-se CONT ← 0 T ← 12 - MA enquanto T > 0 CONT ← CONT + 1 T ← T - 1 fim-enquanto escreva (‘Tenho‘, A , ‘anos e’, R, ‘meses’) escreva (‘Faltam ‘, CONT, ‘ meses para as férias’) fim Problema da média final algoritmo media declare nota1, nota2, media: numérico início escreva (`Digite dois números’) Introdução à Computação 83 escreva (`Digite dois números’) leia nota1 leia nota2 media ← (nota1+nota2) / 2 escreva (“A média é:”, media) fim Representação do algoritmo leia Instrui o recebimento de um valor, o qual será armazenado na variável indicada. media ← (nota1+nota2)/2 Introdução à Computação 84 media ← (nota1+nota2)/2 Representa um cálculo, onde a seta (← ) indica a variável que receberá o resultado escreva Faz com que o conteúdo armazenado na variável media seja escrito na saída padrão Representação do algoritmo � Comece com a palavra ALGORITMO � Declare os dados que serão manipulados pelo programa (variáveis) com a palavra DECLARE e indique o tipo de dadoindique o tipo de dado � As demais linhas devem estar alinhadas em uma margem mais à direita. � Termina com a palavra FIM Introdução à Computação 85 Estrutura de um algoritmo Algoritmo <nome do algoritmo>; declaração de variáveis; início Introdução à Computação 86 comando 1; comando 2; .... comando n; fim. Exercício 6. Dados três valores positivos, a, b e c, determine a sua média aritmética, harmônica, geométrica e ponderada com pesos de 1, 2 e 3 respectivamente. Introdução à Computação 87 Exercício 7. Foram digitadas três linhas. Cada uma delas contém o nome e a nota de um aluno. a) Escrever o(s) comando(s) de entrada que leiam estas linhas e armazene(m) Introdução à Computação 88 que leiam estas linhas e armazene(m) os valores na memória b) Escrever o(s) comando(s) de saída que imprimam o conteúdo das posições de memória da questão anterior. Identação � São espaços utilizados nas linhas de comandos de forma a refletir o alinhamento; � Facilitam a identificação das estruturas; � Facilitam a identificação dos comandos que “pertencem” a uma estrutura; Introdução à Computação 89 ...<nível 1> .......<nível 2> Comandos do nível 2 .......<fim - nível 2> ...<fim - nível 1> Estruturas � Estrutura seqüencial; � Estrutura condicional; � Estrutura de repetição; Introdução à Computação 90 Estrutura Seqüencial � Os comandos são executados na ordem em que aparecem, de cima para baixo. Algoritmo SEQÜÊNCIA; declare <lista de variáveis>; Introdução à Computação 91 declare <lista de variáveis>; início <comando 1> <comando 2> ... <comando n> fim. Os comandos serão executados na ordem em que aparecem. Ex.: Algoritmo Média declare Nome : literal Nota1, Nota2, Media : real início escreva (‘Digite o nome do aluno:’ ) leia (nome ) Estrutura Seqüencial Introdução à Computação 92 leia (nome ) escreva (‘Digite as 2 notas:’ ) leia (nota1, nota2 ) media ← ( nota1 + nota2 ) / 2 escreva (‘A média de ‘, nome,` é: ’ , media ) fim Exercício: Faça um Teste de Mesa do algoritmo Média para 3 alunos. Exercícios 8. Dados dois números inteiros A e B, calcular e exibir: C=A+B+7, D=AB-A, E=A2, F=2A-5B, G=5A/B-7A, H=5A/(B-7A), J=(A3-senB)/7. 9. Dado o raio de uma circunferência, calcular sua área e seu perímetro Introdução à Computação 93 10. Dado um número real x, calcular e exibir as imagens de f(x)=5x4-x3 e de g(x)=5senx-2cosx 11. Ler dois númerosinteiros e positivos X e Y e efetuar as operações de adição, subtração, multiplicação, divisão de X por Y e a raiz quadrada do produto de X por Y. Exercícios 12. Dada a temperatura de um corpo, em graus Fahrenheit, calcular e exibir o valor da referida temperatura em graus Celsius e em Kelvin. 13. Um aluno comprou três itens em uma papelaria. Para cada item são conhecidos: nome, preço e percentual de desconto. Mostrar Introdução à Computação 94 nome, preço e percentual de desconto. Mostrar o nome do item, o preço do item, o preço do item com desconto e o total a pagar 14. Dado um número inteiro de segundos, determinar o seu valor equivalente em horas, minutos e segundos. Testar para 16723. Estrutura de Controle Condicional Estrutura de Desvio Condicional, Controle Condicional, Decisão ou Introdução à Computação 95 Permite a escolha entre blocos de comandos alternativos. Decisão ou Seleção A tomada de decisão � Em muitas situações, é necessário executar um grupo de ações dependendo do resultado de certas avaliações. � Imagine o caso de identificar se um aluno Introdução à Computação 96 � Imagine o caso de identificar se um aluno foi ou não aprovado. O resultado depende da avaliação da média obtida pelo aluno. � Usamos o desvio condicional para executar um grupo de comandos dependendo do resultado de uma expressão lógica. Desvio condicional simples comandosCondição Verdadeira Falsa Introdução à Computação 97 � Se a condição for verdadeira, provocará um desvio e executará o bloco de comandos. Desvio condicional simples ... se <condição> [então] <instrução para condição verdadeira> fim-se Introdução à Computação 98 ... � Condição é uma expressão lógica. � Se o resultado da condição for verdadeiro, será executado o comando após a palavra então. � Caso a condição resulte em falso, ou após a execução da instrução, o programa continua executando os comandos após o fim-se. Algoritmo Condicional_Simples; declare N1, N2, Media : numérico inicio escreva( ‘Digite duas notas:’ ) leia(N1, N2) Desvio condicional simples Introdução à Computação 99 leia(N1, N2) Media ← (N1 + N2)/2 escreva (‘Média = ’, Media) se Media < 7,0 escreva (‘Deve fazer o Exame Final’) fim-se fim. Desvio condicional composto Comandos ACondição VerdadeiraFalsaComandos B Introdução à Computação 100 � Se a condição for verdadeira, executará o bloco de comandos A, caso contrário, executará o bloco B. Nunca os dois. Desvio condicional composto ... se <condição> [então ] <instrução para condição verdadeira> senão <instrução para condição falsa> Introdução à Computação 101 <instrução para condição falsa> fim-se ... � Se o resultado da condição for verdadeiro, será executado o comando após a palavra então, caso contrário, será executado a instrução após a palavra senão. � Somente uma das duas será executada. Após, o programa continua... Algoritmo Condicional_Composto declare N1, N2, Media : real início escreva ( ‘Digite duas notas:’ ) leia (N1, N2) Media ← (N1 + N2)/2 Desvio condicional composto Introdução à Computação 102 Media ← (N1 + N2)/2 se Media < 7.0 escreva (‘Aluno Reprovado!!!’) senão escreva (‘Aluno Aprovado!!!’) fim-se escreva (‘Média = ’, Media) fim Bloco de Comandos � Pode-se utilizar um grupo de comandos ao invés de uma única instrução. se Media < 7,0 Introdução à Computação 103 se Media < 7,0 escreva (‘Digite NotaFinal:’) leia (NotaFinal) MediaFinal ← (Media+NotaFinal) / 2 senão escreva(‘Aprovado.’) fim-se Aninhamento de Estruturas � Uma estrutura pode conter outras estruturas em sua definição. � Não há limites para a quantidade de níveis de aninhamento. Introdução à Computação 104 níveis de aninhamento. Algoritmo Condicional_Aninhado declare N1, N2, Media : real início escreva ( ‘Digite duas notas:’, N1, N2) Media ← (N1 + N2)/2 se Media < 7,0 se Media < 3 Desvio condicional aninhado Introdução à Computação 105 se Media < 3 escreva(‘Aluno Reprovado!!!’) senão escreva (“Aluno em final”) fim-se senão escreva(‘Aluno Aprovado!!!’) fim-se escreva(‘Média = ’, Media) fim Exercícios 15. Considerando A=3, B=2, C=5 e D=7, qual o valor de X? a) se não (D > C) então X ← (A + B) * D senão X ← (A - B) / C; Introdução à Computação 106 b) se (A > 2) e (B > 7) então X ← (A + 2) * (B - 2) senão X ← (A + B) / C * (C + D); c) se (A > 2) ou (B > 7) então X ← (A + 2) * (B - 2) senão X ← (A + B) / D * (C + D); Exercícios 16. Ler três valores inteiros e distintos (A, B e C) e apresentar o maior valor. 17. Dados dois valores reais, apresentar a diferença do maior pelo menor. Introdução à Computação 107 18. Dado um número inteiro positivo, informar se o número lido é par ou ímpar. 19. Faça um algoritmo que para calcular as raízes reais de uma função quadrática, dados os valores de a, b e c. ( ) cbxaxxf ++= 2 Exercícios 20. Construa um algoritmo que receba 2 números e, se o primeiro número for maior que zero e menor que 10, mostre a soma destes números; caso contrário, mostre a multiplicação deles. 21. Construa um algoritmo que receba cinco grupos Introdução à Computação 108 21. Construa um algoritmo que receba cinco grupos de 2 números e mostre a soma destes números; 22. Faça um algoritmo que receba dois números e mostre o maior deles; 23. Faça um algoritmo que receba três números e mostre-os em ordem crescente. Estruturas de Repetição Permitem a execução de comandos repetidas vezes. �Repetição condicional A repetição acontecerá com base em uma condição. Introdução à Computação 109 uma condição. � Condição no início � Condição no final �Repetição com variável de controle A repetição será controlada por uma variável (contador) Condição no início comandoscondição Verdadeira Falsa Introdução à Computação 110 Se a condição for verdadeira, os comandos serão executados e o processo reinicia; caso contrário, a repetição não acontecerá Interrupção no início enquanto <condição> [faça] [início] <comandos> fim-enquanto Sintaxe Introdução à Computação 111 Exemplo 1 leia (“Digite um número: “, Y) X ← 0 enquanto X<Y escreva ( X ) X ← X + 1 fim-enquanto Exemplo: Calcular a média de várias notas. A nota = -1 indica que já foram informadas todas as notas (flag). leia(Nota) Total ← 0 N ← 0 enquanto Nota<>-1 Total ← Total + Nota N ← N + 1 Introdução à Computação 112 N ← N + 1 leia (Nota) fim-enquanto se N > 0 Media ← Total / N escreva ( Media ) senão escreva ( “Notas não informadas”) fim-se Exercícios 24. Escrever um programa que lê dois números inteiros: inicial e final, e mostra os números inteiros existentes entre o número inicial e o final (inclusive). Crítica: o número final deve ser maior do que o inicial. 25. Implemente um programa que calcula a soma Introdução à Computação 113 25. Implemente um programa que calcula a soma dos números pares entre dois números lidos (inclusive). 26. Escrever programa para calcular, para N (inteiro) lido, o valor de S, dado por 12 1 ... 2 3 1 21 NN NNN S +−++ − + − += Interrupção no final comandos Condição Falsa Introdução à Computação 114 Verdadeira � O bloco de comandos é executado uma vez. � Se a condição for falsa, os comandos serão executados novamente; � Caso contrário, a repetição não acontecerá e o programa continua. Interrupção no final Repita <comandos> até <condição> Sintaxe Introdução à Computação 115 Exemplo 1 X ← 0 repita escreva ( X ) X ← X + 1 até X > 5 leia(Nota) N ← 0 repita Total← Total + Nota N ← N + 1 leia (Nota) Exemplo: Calcular a média de várias notas. A nota = -1 indica que já foram informadas todas as notas (flag). Introdução à Computação 116 leia (Nota) até Nota = -1 se N > 0 Media ← Total / N escreva ( Media ) senão escreva ( “Notas não informadas”) fim-se Variável de Controle � Repetições que possuem um número finito de execuções (conhecido) podem ser processadas através de uma repetição controlada por uma variável de controle do tipo contador; � Podem ser crescentes ou decrescentes; Introdução à Computação 117 � Podem ser crescentes ou decrescentes; � A execução dos comandos deve acontecer para cada valor de um determinado conjunto de valores. Em cada repetição, a variável de controle assume um dos valores do conjunto. Quando a variável tiver assumido uma vez cada valor, então a repetição termina. Variável de controle para <VarControle> ← <ValorIni> até <ValorFim> [de <Incremento>] [faça] [início] <comandos> fim-para Sintaxe Introdução à Computação 118 � A variável de controle (VarControle) assumirá cada elemento entre o ValorIni e o ValorFim; � Na primeira vez, a variável de controle assume o ValorIni e executa os comandos uma vez. Ao terminar a execução, assume o sucessor de ValorIni e executa novamente. Ao assumir o ValorFim e executar os comandos, a repetição é interrompida; � Algumas linguagens aceitam definir o tamanho do incremento. fim-para Variável de Controle � Exemplo 1 para X ← 1 até 10 faça escreva ( X ) fim-para � Exemplo 2 Introdução à Computação 119 � Exemplo 2 z ← 0 para X ← 1 até 5 leia ( Y ) z ← z + Y fim-para x ← z/X Escreva (x) Acompanhe a execução dos algoritmo Primo com os valores 4 e 5 da variável N e informe o resultado da variável P. ALGORITMO Primo declare N, Max, Aux, Resto, k : inteiro declare P : lógico início leia (‘Digite um número’, N) Aux ← 1 P ← VERDADE Max ← N / 2 k← 2 Introdução à Computação 120 k← 2 enquanto (P = VERDADE) e (k ≤ Max) Resto ← N – (N/k * k) se Resto = 0 P ← FALSO fim-se k ←k + 1 fim-enquanto se P = VERDADE escreva (N,”é primo”) fim-se fim Exercícios 27. Construa um algoritmo que receba um valor N inteiro e positivo, calcule e mostre o fatorial de N (N!). 28. Construa um algoritmo que leia dez conjuntos de dois valores, o primeiro valor corresponde ao número do aluno, o segundo valor corresponde à sua altura em centímetros. Encontre e mostre o número e a altura do aluno mais baixo e do aluno mais alto. Introdução à Computação 121 aluno mais baixo e do aluno mais alto. 29.Faça um algoritmo que leia cinco pares de valores (a,b), todos inteiros, positivos, um de cada vez. Mostre os números inteiros pares de a até b (inclusive). 30.Faça um algoritmo que leia o número de termos e um valor positivo para x, calcule e mostre o valor da série: ... !6!5!4!3!2!1 765432 −+−+−+−= xxxxxx s Vetores � Vetor é uma variável composta homogenia unidimensional formada por uma seqüência de variáveis do mesmo tipo, com o mesmo identificador e alocadas sequencialmente na memória. � As variáveis são distinguidas por índices Introdução à Computação 122 � As variáveis são distinguidas por índices � Declaração declare nome[tamanho] : tipo Nome: 0 1 2 3 4 5 6 7 Vetores � Representação declare v[8] : inteiro elemento 1 2 3 4 5 6 7 8 Introdução à Computação 123 elemento variável V[1] V[2] V[3] V[4] V[5] V[6] V[7] V[8] 56 2 30 4 50 6 17 87valor Exemplo * declarar declare v[5] : numérico * Atribuir valor v[1] ← 45 v[4] ← 0 * Carregar para i 1 até 5 Introdução à Computação 124 para i ← 1 até 5 escreva (“Digite o “, i, “º elemento”) leia v[i] fim-para * Mostrar para i ← 1 até 5 escreva (“Este é o “, i, “º elemento do vetor: ”, v[i]) fim-para Exemplo - Calcular a média geral de uma turma de 15 alunos. declare MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8, MD9, MD10, MD11, MD12, MD13, MD14, MD15, SOMA, MEDIA : real inicio SOMA← 0 leia (MD1, MD2, MD3, MD4, MD5, MD6, MD7, Introdução à Computação 125 leia (MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8, MD9, MD10, MD11, MD12, MD13, MD14, MD15) SOMA ← MD1 + MD2 + MD3 + MD4 + MD5 + MD6 + MD7 + MD8 + MD9 + MD10 + MD10 + MD12 + MD13 + MD14 + MD15 MEDIA ← SOMA / 15 escreva (‘ Media =‘, MEDIA) fim declare I : inteiro; MD[15], SOMA, MEDIA : real início SOMA ← 0 para I ← 1 até 15 leia MD[ I ] Exemplo - Calcular a média geral de uma turma de 15 alunos. Introdução à Computação 126 leia MD[ I ] SOMA ← SOMA + MD[ I ] fim-para MEDIA ←SOMA / 15 escreva (‘ Media =‘, MEDIA) fim Matrizes � Variável composta homogenia bidimensional formada por uma seqüência de variáveis do mesmo tipo, com o mesmo identificador e alocadas seqüencialmente na memória. � As variáveis são distinguidas por índices � As variáveis são compostas por linhas e colunas Introdução à Computação 127 � Declaração declare nome[linha, coluna] : tipo variável linha 1 2 ... coluna 1 2 ... Matrizes � Representação declare m[4,4] : inteiro 1 2 3 4 coluna Introdução à Computação 128 linha variável v[1,1] v[1,2] v[1,3] v[1,4] v[2,1] V[2,2] V[2,3]V[2,4] 1 2 3 V[4,1] V[4,2] V[4,3]V[4,4]4 Exemplo * declarar declare m[3,2] : numérico * Atribuir valor m[1,2] ← 45; m[3,2] ← 0 * Carregar para i ← 1 até 3 para J ← 1 até 2para J ← 1 até 2 escreva (“Digite o conteúdo da linha “, i, “ e coluna ”, j) leia m[i,j] fim-para fim-para * Mostrar para i ← 1 até 3 para J ← 1 até 2 escreva (“Linha “, i, “ e coluna ”, j, “: “, m[i,j]) fim-para fim-para Exercícios 31. Sabe-se que: 1 pé = 12 polegadas 1 jarda = 3 pés 1 milha = 1.760 jardas Faça um algoritmo que receba uma medida em pés, faça as conversões a seguir e mostre os resultados em Polegadas, Jardas e Milhas. Introdução à Computação 130 32. Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: a)A idade dessa pessoa; b)Quantos anos essa pessoa terá em 2015 33. Construa um algoritmo que receba cinco grupos de 2 números pelo teclado e mostre a soma destes números; 34. Altere o algoritmo acima para ler um número qualquer de pares.
Compartilhar