Introdução a Programação.pdf

284
Introdução à Programação Profª Gilka Rocha Barbosa ESCOLA POLITÉCNICA DA UNIVERSIDADE DE PERNAMBUCO 1

Transcript of Introdução a Programação.pdf

  • Introduo Programao Prof Gilka Rocha Barbosa ESCOLA POLITCNICA DA UNIVERSIDADE DE PERNAMBUCO 1
  • CCMP0016 Introduo Programao Carga Horria Semestral: 60 horas Nmero de Crditos: Tericos: 3 Prticos: 1 Pr-Requisitos: No h 2
  • Noes bsicas de computao. Algoritmos: projeto e anlise. Programao: noes de tipos e estruturas elementares de dados, operadores, funes embutidas e expresses, instrues condicionais, incondicionais e de repetio, tipos definidos pelo programador e tipos abstratos de dados. Estruturas compostas de dados: vetores, matrizes e registros. Noes de estruturas dinmicas de dados. Noes de funes e procedimentos. Recurso. Noes de arquivos em programao. Aplicaes utilizando linguagem de programao estruturada. Ementa
  • Objetivos de aprendizagem Apresentar ao aluno os conceitos de programao estruturada atravs do uso de linguagens de alto nvel. Ao final do semestre, o aluno estar apto a: Ter uma formao bsica em computadores e seus perifricos. Estruturar em nvel de pseudocdigo um problema. Definir estruturas elementares bsicas para resoluo de um problema. Desenvolver programao estruturada em uma linguagem de alto nvel. 4
  • Contedo programtico 5 PRIMEIRA UNIDADE
  • Contedo programtico 6 SEGUNDA UNIDADE
  • Metodologia Aulas tericas expositivas. Trabalhos individuais. Trabalhos de grupos. Uso intensivo de computador e de linguagem de programao 7
  • Bibliografia Bsica: ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programao de Computadores. Prentice Hall, 2005. BROOKSHEAR, J. G. Cincia da Computao: Uma Viso Abrangente. So Paulo, Bookman, 1999. Complementar: FARRER, H. Algoritmos Estruturados. 3 ed., LTC, 1999. FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lgica de Programao;. 2a. ed., Makron Books, 2006. MIZHARI, V. V. Matlab 6: Mdulo 1, So Paulo. Makron Books, 1994. SALIBA, W. L. C. Tcnicas de Programao: Uma Abordagem Estruturada. Makron, McGraw-Hill, 1992. 8
  • Consenso Uso de computadores apenas quando permitido No permitido o uso de celulares No permitido gravar nem fotografar a aula No permitido o consume de alimentos e bebidas no laboratrio Evitar conversas em paralelo Pontualidade Frequncia de acordo com as Normas da Universidade Providenciar material para estudo 9
  • Agenda 10 Aula Dia Contedo 1 02/03 seg Apresentao da disciplina 2 05/03 qui Histrico 3 09/03 seg Aniversrio da Poli 4 12/03 qui Arquitetura 5 16/03 seg Arquitetura 6 19/03 qui Algoritimo 7 23/03 seg Algoritimo 8 26/03 qui Algoritimo 9 30/03 seg Algoritmo 02/04 qui Semana Santa 10 06/04 seg Atividade extra classe 11 09/04 qui Algoritmo 12 13/04 seg Algoritmo 13 13/04 qui Aula extra 14 16/04 seg Algoritmo 15 16/04 qui Aula extra 16 20/04 seg Algoritmo 17 23/04 qui 1 EE 18 27/04 seg Correo e devoluo em sala Aula Dia Contedo 19 30/04 qui SCILAB 20 04/05 seg SCILAB 21 07/05 qui SCILAB 22 11/05 seg SCILAB 23 14/05 qui SCILAB 24 18/05 seg SCILAB 21/05 qui Corpus Christi 25 25/05 seg SCILAB 26 28/05 qui SCILAB 27 01/06 seg Atividade extra classe 28 04/06 qui Atividade extra classe 29 08/06 seg SCILAB 30 11/06 qui 2EE (K - Z) 31 15/06 seg 2EE (A - J) 32 18/06 qui 2 Chamada 33 Atividade extraclasse maro 34 Atividade extraclasse abril 35 Atividade extraclasse maio 36 Atividade extraclasse junho 22/06 seg Prova final
  • Conceitos O que um COMPUTADOR? Mquina que recebe dados (entrada), processa conforme programado, e fornece dados (sada). 11
  • Aplicativos Sistema Operacional Componentes Fsicos Interface de hardware Componentes Bsicos Perifricos Componentes Multimdia Componentes de rede Windows DOS Linux Sistemas de Informao SGBD Word CAD Monitor Teclado Processador Estrutura geral de um sistema de computao 12
  • A evoluo dos sistemas de computador Primeira gerao (aproximadamente entre 1951 e 1959) Tecnologia de vlvulas. Tem como marco inicial o UNIVAC, construdo em 1951. Segunda gerao(aproximadamente entre 1955 e 1965) Caracterizada pelos computadores transistorizados. Tem como marco o TRADIC, construdo em 1955, alm da criao das linguagens FORTRAN e COBOL, Terceira gerao (aproximadamente entre 1965 e 1975) Circuitos Integrados, os Chips. Fios, transistores e outros componentes em um nico chip. Quarta gerao(aproximadamente a partiir de 1975) Microcomputadores Tem como marco inicial o chip 8080 da Intel (1974), Quinta gerao .... Atual gerao dos computadores, notebooks, palmtops e telefonia mvel, multimdias, computadores inteligentes e a realidade virtual. 13
  • ENIAC: Eletronic Numeric Integrator And Calculator 1946 18.000 vlvulas, conseguia fazer 500 multiplicaes por segundo Mark I - 1944 Universidade de Harvard e a IBM Ocupava 120 m2 Tinha milhares de rels e fazia um barulho infernal. Uma multiplicao de nmeros de 10 dgitos levava 3 segundos para ser efetuada. Primeira gerao 14
  • Primeira gerao 15 http://www.tecmundo.com.br/infografico/9421-a-evolucao-dos-computadores.htm
  • Segunda gerao 16
  • Terceira gerao 17
  • Quarta gerao 18
  • Quinta gerao 19
  • Criado pela IBM em 1956 Capacidade: 4,7 MB Peso: 1 tonelada Preo: mais de US$ 1.000.000,00 Primeiro HD 20
  • Interfaces 21
  • Interfaces 22
  • 23 Memria RAM At 768 GB Geraes 23
  • Celular....... Ericson MTA - 1956 Motorola Dynatac 8000X 1973 25 cm de comprimento 7 cm de largura, 1 kg Bateria 20 minutos. 24
  • Mainframe: grande capacidade de memria e velocidade de processamento Microcomputador: utilizado em aplicaes pessoais e domsticas ou como terminais de sistemas multiusurio Supercomputador: voltado resoluo de problemas que exigem grande capacidade de processamento em termos de velocidade e preciso 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. Tipos de computadores 25
  • Aplicativos Sistema Operacional Componentes Fsicos Interface de hardware Componentes Bsicos Perifricos Componentes Multimdia Componentes de rede Windows DOS Linux Sistemas de Informao SGBD Word CAD Estrutura geral de um sistema de computao Software Hardware 26
  • Tecnologias de hardware Arquitetura bsica de um sistema de computador Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada 27
  • Unidade de entrada Formada pelos equipamentos que permitem a incluso de dados a serem processados pelo sistema de computador. A evoluo das tecnologias de entrada de dados busca mtodos, tcnicas e ferramentas cada vez mais fceis de utilizar Teclados Dispositivos indicadores Dispositivos de leitura magntica Dispositivo de leitura tica Dispositivos de captura de imagens Dispositivos de captura de udio Dispositivos de captura de sinais Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada 28
  • Unidade de memria principal Formada pelos dispositivos que armazenam os dados e as instrues em processamento pela Unidade Central de Processamento (UCP/CPU). Os dados e os programas so armazenados na memria principal durante o processamento. Posteriormente, os resultados so liberados para o armazenamento em memria secundria ou para a unidade de sada. A memria principal constituda por diferentes componentes eletrnicos fabricados com material semicondutor e denominados chips. Entre os chips de memria, destacam-se: RAM (Random Access Memory). ROM (Read Only Memory). Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada 29
  • Unidade de memria secundria Utilizada em virtude da limitao da memria principal. Dispositivos de armazenamento mais baratos que a memria principal e viabilizam o armazenamento de grandes volumes de dados por perodos prolongados. apresenta como desvantagem uma menor velocidade de acesso em virtude de empregarem mecanismos eletromecnicos para leitura e gravao dos dados. meios de armazenamento Meio magntico Fitas magnticas. Discos magnticos Meio tico CD (compact disk). DVD (Digital Video Disk). Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada 30
  • Memria Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada 1 Byte 20 8 bits 1 Kilobyte (KB) 210 1024 bytes 1 Megabyte (MB) 220 1024 kilobytes 1 Gigabyte (GB) 230 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 31
  • Tabela ASCII American Standard Code for Information Interchange 32
  • Unidade Central de Processamento Unidade de controle. Comanda todo o sistema de processamento atravs de cdigos especiais (instrues), que indicam ao computador as operaes que ele deve realizar e quais os dados a que elas se referem Unidade de aritmtica e lgica Formada pelos componentes que realizam clculos matemticos e comparaes lgicas. Registradores. Armazenam as instrues e dados em processamento Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada Pastilha de silcio composta por duas unidades: 33
  • Unidade de sada Formada pelos equipamentos que permitem apresentao de resultados processados pelos sistemas. As tecnologias de sadas de dados tm evoludo no sentido de proporcionar resultados mais atraentes e fceis de utilizar Dispositivos de sada em vdeo Dispositivos de sada impressa Dispositivos de sada sonora Unidade central de processamento Unidade de entrada Unidade de memria Unidade de sada 34
  • Instruo um comando que pode ser decodificado e executado Algoritmo expressa formalmente uma soluo para um problema atravs de um conjunto finito de passos, que, ao ser executado, opera certas 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 soluo para determinado problema Software 35
  • Software Software Exemplo Bsico Sistemas Operacionais Loader Compiladores Link-editores Suporte Gerenciador de rede Controle de espao Segurana Aplicativo Processador de texto Planilha eletrnica Edio grfica Aplicativo especfico Sistema de contabilidade Clculos de estruturas Folha de pagamento Hardware Usurio Software aplicativo / suporte Hardware Software bsico 36 Software
  • Software de suporte Ferramentas de desenvolvimento de software empregadas para o desenvolvimento de outro software. Gereciadores de Banco de Dados Gerenciadores de rede Linguagens de programao. Tradutores de linguagens de programao. .... 37
  • Linguagem de programao Conjunto de termos (vocabulrio) e de regras (sintaxe) que permitem a formulao de instrues a um computador. 1 Gerao: Linguagens Binrias 2 Gerao: Linguagens Assembly 3 Gerao: Linguagens Alto-Nvel 4 Gerao: Linguagens Consulta 5 Gerao: Linguagens Naturais 38
  • Nvel de Abstrao Consumo de Recursos de Mquina Facilidade de Programao - - + + 1 2 3 4 5 Linguagens de Programao 39
  • Linguagens de Programao Trecho de cdigo em C a=5; b=10; c=a+b; Cdigo 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 40
  • Conceitos bsicos - Dados Os dados so representaes de abstraes acerca do mundo. So classificados em tipos. Tipos podem ser primitivos ou construdos Tipos primitivos so os tipos fornecidos pela linguagem de programao de forma intrnseca. Inteiros, reais, caracteres, lgico So a base para a construo de novos tipos 41
  • Tipos de Dados Numrico Nmeros Inteiros Reais Caractere Smbolos da tabela ASCII Literal Agregado de caracteres Lgico verdadeiro / falso 42
  • Tipos de Dados Constante Determinado valor que no se modifica durante a execuo de um programa. Pode ser numrica, lgica e literal. Pode ou no receber um identificador. Pode aparecer dentro de expresses. Ex: num + 2 - 5/val 43
  • Tipos de Dados Variveis reas reservadas na memria do computador para armazenar um tipo de dado determinado. So posies de memria, s quais deve-se associar nomes (identificadores) e um tipo de dado. O contedo pode ser alterado durante a execuo do programa S podem armazenar um valor a cada instante 44
  • Tipos de Dados Variveis x Constantes a b + 5 a, b e 5 so variveis ou constantes? 45
  • Atributos das variveis Toda varivel tem um nome (identificador) um tipo de dado um valor val1 val2 real inteiro x a Memria 46
  • Nomes ou identificadores Regras para definir o nome ou identificador (nome das variveis, constantes, programas...): S podem conter letras e dgitos; Primeiro caractere deve ser uma letra; Letras maisculas e minsculas podem ser consideradas caracteres diferentes; O nico caractere especial aceito o underline; Palavras reservadas no podem ser usadas. val1 val2 real inteiro x a Memria 47
  • Exemplo de identificadores Identificadores vlidos A a nota Nota NOTA a32 nota_1 Identificadores invlidos 5b e 12 x-y SAT case prova 2n 48
  • Tipos das variveis Numrico Inteiros -28, 156 Reais 23.45, -9.36 Lgico ou Booleano Falso Verdadeiro Caractere a, b Literal aluno, 1 + 2, ou aluno, 1 + 2 val1 val2 real inteiro x a Memria 49
  • Valor das variveis Valor: a varivel contm um valor quando est sendo usada val1 val2 inteiro inteiro x a Memria Ateno! Uma varivel sem inicializao poder conter um valor qualquer e imprevisvel. Costuma-se dizer que contm lixo. 50
  • Variveis compostas homogneas Identificadas por um mesmo nome, individualizadas por ndices, cujo contedo do mesmo tipo. Exemplo 1: Notas de 10 alunos (Vetor): N1 N1[3] referencia o terceiro elemento, cujo contedo 9,0 Exemplo 2: Notas de 10 alunos em dois semestres (Matriz): N2 N2[2,3] referencia o terceiro elemento da segunda linha, cujo contedo 1,0 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 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 51
  • Atribuies Armazena um valor em uma varivel. ex: X 5; Nome fulano; Z X + 9 * 15; Y 12 - x + 5; Qual o resultado de ?? A 4 B 5 A B B A 52
  • Operaes Conjunto de aes a serem executadas sobre um conjunto de objetos Meio pelo qual incrementamos, decrementamos, comparamos e avaliamos dados no computador. Tipos Monodicas (-x) Didicas (a+b) 53
  • Combinaes de variveis, constantes e operadores em uma nica sentena, que tm como finalidade a obteno de um resultado. As expresses mais comuns so as aritmticas. Expresses Operadores Smbolos que representam as operaes Tipos bsicos: aritmticos, relacionais, lgicos e atribuio Operaes 54
  • Linearizao de expresso ((2/3-(5-3))+1)*5 Tradicional Computacional 55
  • Operadores Aritmticos Utilizados para obter resultados numricos. Operao Operador Exponenciao ** , ^ Radiciao raiz Multiplicao * Diviso / Diviso inteira div, quociente Resto da diviso resto Adio + Subtrao - 56
  • Operao Operador Igual a = Maior que > Menor que < Maior ou igual a >= Menor ou igual a
  • 58 Operao Operador Disjuno OU Conjuno E Negao NO Operadores Lgicos Utilizam a lgica booleana para a construo de expresses condicionais 58
  • 59 Tabela Verdade Negao A no A F V V F A B Disjuno A ou B Conjuno A e B V V V V V F V F F V V F F F F F 59
  • Prioridade das operaes 1: parnteses 2: funes 3: unrio 4: ** ^ 5: * e / 6: + e 7: relacionais 8: NO 9: E 10: OU Funes sen(x), cos(x), abs(x), int(x), log(x), raiz(x) 60
  • Variveis Relaes Operadores lgicos - exemplo A B NOME PROFISSAO A + 1 >= RAIZ(B) NOME "ANA" PROFISSAO = "MDICO" 3 16 "MIRIAN" "ADVOGADO" 5 64 "PEDRO" "MDICO" 2.5 9 "ANA" "PROFESSOR" 61
  • Variveis Relaes Operadores lgicos - exerccio X Y Z COR NOME X^2 + Y > Z COR = "AZUL" NOME "JOS" 1 2 5 "AZUL" "PAULO" 4 3 1 "VERDE" "JOS" 1 1 2 "BRANCO" "PEDRO" 1 2 1 "AZUL" "JOS" 62
  • 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 Operadores lgicos - exerccio Varivel Tipo Contedo X numrica 2 Y numrica 5 Z numrica 9 NOME literal "MARIA" SIM lgica FALSO 63
  • c) no SIM e quociente(Z,Y) + 1 = X no falso e quociente (9,5) + 1 = 2 no falso e verdadeiro verdadeiro d) ) X2 < Z + 10 ou NOME = JORGE e SIM 4 < 19 ou MARIA = JORGE e SIM 4 < 19 ou falso e falso verdadeiro ou falso verdadeiro Operadores lgicos - exerccio Varivel Tipo Contedo X numrica 2 Y numrica 5 Z numrica 9 NOME literal "MARIA" SIM lgica FALSO 64
  • Exerccios 4. Se x possui o valor inicial 15 e se forem executadas as seguintes atribuies na ordem em que aparecem, qual o valor final de x? x x + 2 x x - 6 x x/2 x 2 + 3 * x 5. Qual a sequncia de operaes necessrias para trocar os valores das variveis 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? 65
  • Operaes com variveis Variveis devem ser declaradas Exemplo: : ; As variveis so modificadas atravs de um comando de atribuio (=, , , := ) ou de leitura Exemplo: Ler ; a 3; a a + 2; As variveis podem ser impressas Exemplo: Escrever (a); Existem condies para testar se a operao pode ser executada para verificar o resultado (falso/verdadeiro) 66
  • Atribuio Atribui valores ou operaes a variveis. ex: X 4; X x + 1; y aula; teste falso; := = 67
  • Introduo Programao Algoritmos
  • Algoritmo Um algoritmo formalmente uma sequncia finita de passos que levam a execuo de uma tarefa. Estas tarefas no podem ser redundantes nem subjetivas na sua definio, devem ser claras e precisas. 69
  • Exemplo de Algoritmo Sacar dinheiro num banco 24 horas Passo 1: Ir at um banco 24 horas. Passo 2: Colocar o carto. Passo 3: Solicitar a quantia desejada. Passo 4: Se o saldo for maior ou igual quantia desejada, sacar; caso contrrio, escolher outro valor e refazer o Passo 2 . Passo 5: Retirar o carto. Passo 6: Sair do banco 24 horas. 70
  • Representao de Algoritmos Propriedades de um algoritmo: a descrio deve ser finita; Ser objetivo nas instrues; Usar somente um verbo por frase; Escrever textos simples, para leigos; Usar frases curtas e simples; Usar palavras que no tenham sentido dbio. Teste de mesa Testes de verificao da corretude de um algoritmo de forma simples e interativa. 71
  • 1. Somar trs nmeros 2. Fazer um sanduche 3. Trocar uma lmpada 4. Ir para a escola Algoritmo - exemplos 72
  • Mtodo para construo de algoritmos a)Ler atentamente o enunciado, destacando os pontos mais importantes; b)Definir os dados de sada Quais dados sero gerados a)Definir os dados de entrada Quais dados sero recebidos d) Definir o processamento Quais clculos sero efetuados e quais as restries para esses clculos. e) Construir o algoritmo utilizando uma representao escolhida; f) Testar o algoritmo realizando simulaes. 73
  • Representao de algoritmos Descrio narrativa Analisar o enunciado do problema e escrever os passos a serem seguidos para resoluo do problema utilizando uma linguagem natural. Vantagem No necessrio aprender nenhum novo conceito. Desvantagem a linguagem natural abre espao para vrias interpretaes, o que posteriormente dificultar a transcrio desse algoritmo para programa. 74
  • Analisar o enunciado do problema e escrever os passos a serem seguidos para resoluo do problema utilizando smbolos grficos predefinidos. Vantagem O entendimento de elemento grfico mais fcil que o entendimento de textos. Desvantagem necessrio aprender a simbologia dos fluxogramas e o algoritmo resultante no apresenta muitos detalhes dificultando sua transcrio para um programa. Representao de algoritmos Fluxograma 75
  • Conjunto de smbolos utilizados no fluxograma Incio e fim do algoritmo Indica o sentido do fluxo de dados, serve exclusivamente para conectar os smbolos existentes Clculos e atribuies de valores Entrada de dados Sada de dados Tomada de deciso, indicando a possibilidade se desvios Representao de algoritmos Fluxograma 76
  • Representao de algoritmos Pseudocdigo, Portugol ou Portugus estruturado Analisar o enunciado do problema e escrever os passos a serem seguidos para resoluo do problema por meio de regras predefinidas. Vantagem a passagem do algoritmo para qualquer linguagem de programao quase imediata, bastando conhecer as palavras reservadas da linguagem de programao. Desvantagem necessrio aprender as regras do pseudocdigo 77
  • a) Descrio narrativa Passo 1: Receber os dois nmeros que sero somados. Passo 2: Somar nmeros. Passo 3: Mostrar o resultado obtido. Exemplo de algoritmo Mostrar o resultado da soma de dois nmeros Incio S = N1 + N2 N1, N2 S Fim c) Pseudocdigo ALGORITMO soma DECLARE N1, N2, S : NUMRICO INICIO LEIA (Digite dois nmeros, N1, N2) S N1 + N2 ESCREVA (Soma = , S) FIM b) Fluxograma 78
  • Exerccios - Usando pseudocdigo 1. Faa um algoritmo para mostrar o resultado da diviso de dois nmeros; 2. Faa um algoritmo para calcular a mdia aritmtica entre duas notas de um aluno e para mostrar a situao desse aluno, que pode ser aprovado (mdia maior ou igual a 7,0) ou reprovado; 3. Faa um algoritmo para calcular o novo salrio de um funcionrio. Sabe-se que os funcionrios que possuem salrio atual at R$ 500,00 tero aumento de 20%, os demais tero aumento de 10%. 79
  • Estrutura de um algoritmo Algoritmo Incio Fim. Processamento Dados de entrada Dados de sada 80
  • Estrutura de um algoritmo Algoritmo soma declare A, B, C : numrico; Incio leia (Informe dois nmero, A, B); C A + B; escreva(O valor da soma :, C); Fim. 81
  • Operaes com variveis Variveis devem ser declaradas Exemplo: : ; As variveis so modificadas atravs de um comando de atribuio (=, , , := ) ou de leitura Exemplo: Ler ; a 3; a a + 2; As variveis podem ser impressas Exemplo: Escrever (a); Existem condies para testar se a operao pode ser executada para verificar o resultado (falso/verdadeiro) 82
  • Atribuio Atribui valores ou operaes a variveis. ex: X 4; X x + 1; y aula; teste falso; := = 83
  • leia ( [, [ ... ] ] ); Captura valores do dispositivo de entrada especificado (Padro = teclado). Os dados recebidos so armazenados em variveis. Pode conter mensagens. leia (a) leia (g, r, b) leia (Digite seu nome: , nome) Comando de entrada Palavra-chave Nome das variveis nas quais sero armazenados o valores provenientes do meio de entrada 84
  • escreva ( ); Envia a expresso para o dispositivo de sada especificado (Padro = tela). Expresso pode ser uma combinao de variveis, constantes e mensagens separadas por vrgulas. escreva (x) escreva (Contedo de Y = , y) escreva(O fatorial de, N, " ", fat); Comando de sada Palavra-chave Contedo que ser mostrado atravs de um meio de sada. 85
  • Faa um Teste de Mesa do algoritmo PRIME. algoritmo PRIME declare MA, AA, MES, ANO, A, R, T, CONT : numrico incio leia (Informe o ms e o ano atuais, MA, AA) leia (Informe o ms e o ano do seu nascimento, MES, ANO) se MES 0 CONT CONT + 1 T T - 1 fim-enquanto escreva (Tenho, A , anos e, R, meses) escreva (Faltam , CONT, meses para as frias) fim 86
  • Estrutura de um algoritmo Algoritmo ; declarao de variveis; incio comando 1; comando 2; .... comando n; fim. 90
  • Exerccio 6. Dados trs valores positivos, a, b e c, determine a sua mdia aritmtica, harmnica, geomtrica e ponderada com pesos de 1, 2 e 3 respectivamente. 91
  • Exerccio 7. Foram digitadas informaes sobre trs alunos. Cada uma delas contm o nome e a nota de um aluno. a) Escrever o(s) comando(s) de entrada que leiam estas informaes e armazene(m) os valores na memria b) Escrever o(s) comando(s) de sada que mostrem o contedo das posies de memria da questo anterior. 92
  • Identao So espaos utilizados nas linhas de comandos de forma a refletir o alinhamento; Facilitam a identificao das estruturas; Facilitam a identificao dos comandos que pertencem a uma estrutura; ... ....... Comandos do nvel 2 ....... ... 93
  • Estruturas Estrutura sequencial; Estrutura condicional; Estrutura de repetio; 94
  • Estrutura Sequencial Os comandos so executados na ordem em que aparecem, de cima para baixo. Algoritmo SEQUNCIA; declare ; incio ... fim. Os comandos sero executados na ordem em que aparecem. 95
  • Ex.: Algoritmo Mdia declare Nome : literal Nota1, Nota2, media : real incio leia (Digite o nome do aluno:, nome ) leia (Digite a primeira nota: , Nota1) leia (Digite a segunda nota: , Nota2) media ( Nota1 + Nota2 ) / 2 escreva (A mdia de , nome,` : , media ) fim Exerccio: Faa um Teste de Mesa do algoritmo Mdia para 3 alunos. Estrutura Sequencial 96
  • Exerccios 8. Dados dois nmeros 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 circunferncia, calcular sua rea e seu permetro 10. Dado um nmero real x, calcular e exibir as imagens de f(x)=5x4-x3 e de g(x)=5senx-2cosx 11. Ler dois nmeros inteiros e positivos X e Y e efetuar as operaes de adio, subtrao, multiplicao, diviso de X por Y e a raiz quadrada do produto de X por Y. 97
  • Exerccios 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 trs itens em uma papelaria. Para cada item so conhecidos: nome, preo e percentual de desconto. Mostrar o nome do item, o preo do item, o preo do item com desconto e o total a pagar 14. Dado um nmero inteiro de segundos, determinar o seu valor equivalente em horas, minutos e segundos. Testar para 16723. 98
  • Permite a escolha entre blocos de comandos alternativos. Estrutura de Controle Condicional Estrutura de Desvio Condicional, Controle Condicional, Deciso ou Seleo 99
  • A tomada de deciso Em muitas situaes, necessrio executar um grupo de aes dependendo do resultado de certas avaliaes. Imagine o caso de identificar se um aluno foi ou no aprovado. O resultado depende da avaliao da mdia obtida pelo aluno. Usamos o desvio condicional para executar um grupo de comandos dependendo do resultado de uma expresso lgica. 100
  • Desvio condicional simples comandos Condio Verdadeira Falsa Se a condio for verdadeira, provocar um desvio e executar o bloco de comandos. 101
  • Desvio condicional simples ... se [ento] fim-se ... Condio uma expresso lgica. Se o resultado da condio for verdadeiro, ser executado o comando aps a palavra ento. Caso a condio resulte em falso, ou aps a execuo da instruo, o programa continua executando os comandos aps o fim-se. 102
  • Algoritmo Condicional_Simples; declare N1, N2, Media : numrico Inicio leia (Digite a primeira nota: , N1) leia (Digite a segunda nota: , N2) Media (N1 + N2)/2 escreva (Mdia = , Media) se Media < 7,0 escreva (Deve fazer o Exame Final) fim-se fim. Desvio condicional simples 103
  • Desvio condicional composto Se a condio for verdadeira, executar o bloco de comandos A, caso contrrio, executar o bloco B. Nunca os dois. Comandos A Condio Verdadeira Falsa Comandos B 104
  • Desvio condicional composto ... se [ento ] seno fim-se ... Se o resultado da condio for verdadeiro, ser executado o comando aps a palavra ento, caso contrrio, ser executado a instruo aps a palavra seno. Somente uma das duas ser executada. Aps, o programa continua... 105
  • Algoritmo Condicional_Composto declare N1, N2, Media : real Incio leia (Digite a primeira nota: , N1) leia (Digite a segunda nota: , N2) Media (N1 + N2)/2 se Media < 7.0 escreva (Aluno Reprovado!!!) seno escreva (Aluno Aprovado!!!) fim-se escreva (Mdia = , Media) fim Desvio condicional composto 106
  • Bloco de Comandos Pode-se utilizar um grupo de comandos ao invs de uma nica instruo. se Media < 7,0 leia (Digite NotaFinal:, NotaFinal) MediaFinal (Media+NotaFinal) / 2 seno escreva(Aprovado.) fim-se 107
  • Aninhamento de Estruturas Uma estrutura pode conter outras estruturas em sua definio. No h limites para a quantidade de nveis de aninhamento. 108
  • Algoritmo Condicional_Aninhado declare N1, N2, Media : real incio escreva ( Digite duas notas:, N1, N2) Media (N1 + N2)/2 se Media < 7,0 se Media < 3 escreva(Aluno Reprovado!!!) seno escreva (Aluno em final) fim-se seno escreva(Aluno Aprovado!!!) fim-se escreva(Mdia = , Media) fim Desvio condicional aninhado 109
  • Exerccios 15. Considerando A=3, B=2, C=5 e D=7, qual o valor de X? a) se no (D > C) ento X (A + B) * D seno X (A - B) / C; b) se (A > 2) e (B > 7) ento X (A + 2) * (B - 2) seno X (A + B) / C * (C + D); c) se (A > 2) ou (B > 7) ento X (A + 2) * (B - 2) seno X (A + B) / D * (C + D); 110
  • Exerccios 16. Ler trs valores inteiros e distintos (A, B e C) e apresentar o maior valor. 17. Dados dois valores reais, apresentar a diferena do maior pelo menor. 18. Dado um nmero inteiro positivo, informar se o nmero lido par ou mpar. 19. Faa um algoritmo que para calcular as razes reais de uma funo quadrtica, dados os valores de a, b e c. cbxaxxf 2111
  • Exerccios 20. Construa um algoritmo que receba 2 nmeros e, se o primeiro nmero for maior que zero e menor que 10, mostre a soma destes nmeros; caso contrrio, mostre a multiplicao deles. 21. Construa um algoritmo que receba cinco grupos de 2 nmeros e mostre a soma destes nmeros; 22. Faa um algoritmo que receba dois nmeros e mostre o maior deles; 23. Faa um algoritmo que receba trs nmeros e mostre-os em ordem crescente. 112
  • Estruturas de Repetio Permitem a execuo de comandos repetidas vezes. Repetio condicional A repetio acontecer com base em uma condio. Condio no incio Condio no final Repetio com varivel de controle A repetio ser controlada por uma varivel (contador) 113
  • Condio no incio comandos condio Verdadeira Falsa Se a condio for verdadeira, os comandos sero executados e o processo reinicia; caso contrrio, a repetio no acontecer 114
  • Interrupo no incio enquanto [faa] [incio] fim-enquanto Exemplo 1 leia (Digite um nmero: , Y) X 0 enquanto X
  • Exemplo: Calcular a mdia de vrias 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 leia (Nota) fim-enquanto se N > 0 Media Total / N escreva ( Media ) seno escreva ( Notas no informadas) fim-se 116
  • Exerccios 24. Escrever um programa que l dois nmeros inteiros: inicial e final, e mostra os nmeros inteiros existentes entre o nmero inicial e o final (inclusive). Crtica: o nmero final deve ser maior do que o inicial. 25. Implemente um programa que calcula a soma dos nmeros pares entre dois nmeros lidos (inclusive). 26. Escrever programa para calcular, para N (inteiro) lido, o valor de S, dado por 121...23121 NNNNNS 117
  • Varivel de Controle Repeties que possuem um nmero finito de execues (conhecido) podem ser processadas atravs de uma repetio controlada por uma varivel de controle do tipo contador; Podem ser crescentes ou decrescentes; A execuo dos comandos deve acontecer para cada valor de um determinado conjunto de valores. Em cada repetio, a varivel de controle assume um dos valores do conjunto. Quando a varivel tiver assumido uma vez cada valor, ento a repetio termina. 121
  • Varivel de controle A varivel de controle (VarControle) assumir cada elemento entre o ValorIni e o ValorFim; Na primeira vez, a varivel de controle assume o ValorIni e executa os comandos uma vez. Ao terminar a execuo, assume o sucessor de ValorIni e executa novamente. Ao assumir o ValorFim e executar os comandos, a repetio interrompida; Algumas linguagens aceitam definir o tamanho do incremento. para at [de ] [faa] [incio] fim-para Sintaxe 122
  • Varivel de Controle Exemplo 1 para X 1 at 10 faa escreva ( X ) fim-para Exemplo 2 z 0 para X 1 at 5 leia ( Y ) z z + Y fim-para x z/X Escreva (x) 123
  • Acompanhe a execuo dos algoritmo Primo para N = 4 e 5 e informe o resultado da varivel P. ALGORITMO Primo declare N, Max, Aux, Resto, k : inteiro declare P : lgico incio leia (Digite um nmero, N) Aux 1 P VERDADE Max N / 2 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 124
  • Exerccios 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 nmero do aluno, o segundo valor corresponde sua altura em centmetros. Encontre e mostre o nmero e a altura do aluno mais baixo e do aluno mais alto. 29.Faa um algoritmo que leia cinco pares de valores (a,b), todos inteiros, positivos, um de cada vez. Mostre os nmeros inteiros pares de a at b (inclusive). 30.Faa um algoritmo que leia o nmero de termos e um valor positivo para x, calcule e mostre o valor da srie: ...!6!5!4!3!2!1765432xxxxxxs125
  • Vetores Vetor uma varivel composta homogenia unidimensional formada por uma seqncia de variveis do mesmo tipo, com o mesmo identificador e alocadas sequencialmente na memria. As variveis so distinguidas por ndices Declarao declare nome[tamanho] : tipo Nome: 0 1 2 3 4 5 6 7 126
  • Vetores Representao declare v[8] : inteiro elemento varivel 1 2 3 4 5 6 7 8 V[1] V[2] V[3] V[4] V[5] V[6] V[7] V[8] 56 2 30 4 50 6 17 87 valor 127
  • Exemplo * declarar declare v[5] : numrico * Atribuir valor v[1] 45 v[4] 0 * Carregar 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 128
  • Exemplo - Calcular a mdia geral de uma turma de 10 alunos. declare MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8, MD9, MD10, SOMA, MEDIA : real inicio SOMA 0 leia (MD1, MD2, MD3, MD4, MD5, MD6, MD7, MD8, MD9, MD10) SOMA MD1 + MD2 + MD3 + MD4 + MD5 + MD6 + MD7 + MD8 + MD9 + MD10 MEDIA SOMA / 15 escreva ( Media =, MEDIA) fim 129
  • declare I : inteiro; MD[10], SOMA, MEDIA : real incio SOMA 0 para I 1 at 10 leia MD[ I ] SOMA SOMA + MD[ I ] fim-para MEDIA SOMA / 10 escreva ( Media =, MEDIA) fim Exemplo - Calcular a mdia geral de uma turma de 10 alunos. 130
  • Matrizes Varivel composta homogenia bidimensional formada por uma seqncia de variveis do mesmo tipo, com o mesmo identificador e alocadas seqencialmente na memria. As variveis so distinguidas por ndices As variveis so compostas por linhas e colunas Declarao declare nome[linha, coluna] : tipo varivel linha 1 2 ... coluna 1 2 ... 131
  • Matrizes Representao declare m[4,4] : inteiro linha varivel 1 2 3 4 v[1,1] v[1,2] v[1,3] v[1,4] v[2,1] V[2,2] V[2,3] V[2,4] coluna 1 2 3 V[4,1] V[4,2] V[4,3] V[4,4] 4 132
  • Exemplo * declarar declare m[3,2] : numrico * Atribuir valor m[1,2] 45 m[3,2] 0 * Carregar para i 1 at 3 para J 1 at 2 escreva (Digite o contedo 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 133
  • Exerccios 31. Sabe-se que: 1 p = 12 polegadas 1 jarda = 3 ps 1 milha = 1.760 jardas Faa um algoritmo que receba uma medida em ps, faa as converses a seguir e mostre os resultados em Polegadas, Jardas e Milhas. 32. Faa 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 2017 33. Construa um algoritmo que receba cinco grupos de 2 nmeros pelo teclado e mostre a soma destes nmeros; 34. Altere o algoritmo acima para ler um nmero qualquer de pares. 134
  • Linguagens de Programao (LP) As linguagens de programao permitem ao usurio especificar um programa de uma forma semelhante ao algoritmo. Um compilador/interpretador da linguagem dever fazer a traduo das instrues de alto nvel para as de nvel mquina (por exemplo, manter os endereos de memria onde esto guardadas as variveis). C = A + B LDA 11A810A0 LDB 22345A91 ADD A,B STA 1234FE88 135
  • Exemplo 1: Asembly Trecho de cdigo em C a=5; b=10; c=a+b; Cdigo 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 136
  • Linguagens de Programao (LP) Existem vrios tipos de LP baseadas em diferentes paradigmas (estilos) de programao. Linguagens imperativas: Fortran, Pascal, C, MATLAB, SCILAB Controle explcito da execuo Linguagens Orientadas a Objetos: Smalltalk, C++, Java Controle implcito na manipulao dos dados Linguagens Funcionais: LISP, Scheme Baseadas na especificao de funes Linguagens Lgicas: Prolog Implementando a Lgica de Predicados 137
  • Linguagens de Programao (LP) Java C C C++ Objective-C PHP Visual Basic Python Perl JavaScript Delphi / Object Pascal Ruby Lisp Transact-SQL Pascal Visual Basic .NET PL/SQL Logo Ada R 138
  • Introduo ao Scilab Parte 1
  • Introduo ao Scilab Prof Gilka Rocha Barbosa 140
  • Introduco ao Scilab Apresentar comandos bsicos necessrios introduo programao e desenvolvimento de programas simples. Ambiente Elementos bsicos Nmeros, Vetores e Matrizes Variveis Operadores Funes elementares Carga e gravao 141
  • Scilab Criado em 1989 por um grupo de pesquisadores da INRIA e da ENPC. Disponvel como software livre desde 1994 pelo site http://www.scilab.org Consrcio Scilab desde 2003 mantido por diversas empre-sas. Objetivos do consrcio: organizar cooperao entre os desenvolvedores obter recursos para manuteno da equipe garantir suporte aos usurios Sistemas Operacionais: Linux Windows Solaris Unix 142
  • Scilab Software livre para clculo numrico e simu-lao de sistemas fsicos. Usado nas reas: Fsica Sistemas complexos Processamento de imagens Controle e processamento de sinais Automao industrial Controle de processos Computao grfica Matemtica Modelagem biolgica ... 143
  • Scilab Ambiente utilizado no desenvolvimento de software para resoluo de problemas numricos Gratuito, software free A ltima verso est sempre disponvel, geralmente via Internet O software pode ser legalmente utilizado, copiado, distribudo, modificado Distribudo com cdigo fonte Sintaxe semelhante ao Matlab Permite interface com rotinas escritas em outras linguagens como C Suporta o desenvolvimento de conjuntos de funes voltadas para aplicaes especificas (toolboxes). 144
  • Scilab Ambiente interpreta comandos oferece um editor para a construo de programas (SciPad / Scinotes) emite mensagens de erros relativos aderncia sintaxe da linguagem e a problemas na execuo de um programa Linguagem une riqueza de expresso a detalhes sintticos exige uma postura paciente em seu aprendizado envolve uma taxa inicial de memorizao a fluncia vem com a prtica 145
  • Scilab Ambiente para desenvolvimento ou prototipao de software numrico de propsito geral. Gratuito Open Source http://www.scilab.org/ 146
  • A linguagem Scilab Como qualquer linguagem natural, a linguagem Scilab: Une riqueza de expresso a detalhes sintticos; Exige uma postura paciente em seu aprendizado, pois envolve uma taxa inicial de memorizao; A fluncia vem com a prtica. 147
  • O ambiente Scilab Interpreta comandos e programas atravs de uma console para a interao com o usurio; Oferece um editor para a construo de programas (SciNotes); Emite mensagens de erros relativos obedincia da sintaxe da linguagem e a problemas na execuo de um programa (como diviso por zero). 148
  • O ambiente Scilab Janela Console do Scilab: Barra de Menus Barra de Ferramentas Prompt de Comandos 149
  • Scilab Crie uma pasta Mude a pasta para seus arquivos 150
  • Teste!!!!!!!! // Programa para calcular a media de duas notas clear clc nota1 = input ('Digite a primeira nota: '); nota2 = input ('Digite a segunda nota: '); media = (nota1 + nota2)/ 2; if media >= 7 resultado = ' aprovado.'; else resultado = ' reprovado. '; end printf ( "\n A mdia entre %1.2f e %1.2f %1.2f e o aluno est %s \n\n", nota1, nota2, media, resultado) Salve com o nome Media 151
  • Teste!!!!!!!!!! execute Media 152
  • Programando com o Scilab Caractersticas do Scilab Interpretador de comandos e por isso o cdigo gerado no precisa ser compilado. Facilidade e simplicidade da linguagem estruturada. No h necessidade de declarao prvia das variveis. 153
  • scripts Scripts so arquivos de texto que contm comandos que seriam usados em um prompt do Scilab. Por conveno estes arquivos possuem extenso .sce ou .sci Programas em Scilab so arquivos ASCII (caracteres sem formatao) Um programa construdo usando o editor SciNotes / SciPad Os arquivos so executados com o comando exec 154
  • scripts Abre o programa editor de textos SciNotes Abre um programa preexistente 155
  • Programa da mdia // indica que o restante da linha um comentrio Dilogo com o usurio Dilogo com o usurio clear limpa a memria Clc limpa a tela 156
  • Gravando (salvando) o programa 157
  • Gravando (salvando) o programa 158
  • Executando o programa Executar.. media 159
  • Funes de entrada - input input( ) possibilita a interao entre o usurio e o programa Exemplo: Receber um dado numrico nu = input( Digite um numero qualquer: ) Receber um dado texto tx = input( Digite a resposta: ,s ) varivel string comando de atribuio solicita ao usurio que fornea algum dado de entrada 160
  • Funes de Sada - printf printf (formato, dado) exibe valores e texto e permite a formatao Exemplo: \n -Muda de linha Formatao Exibe %d , %i ou %g Valor inteiro %f ou %x.yf ou %g Valor em ponto flutuante %s Valor de um literal printf(\n s = %s \n g = %g , "Valor de PI: ",%pi) printf(\n d = %d \n i = %i , %pi, %pi) printf(\n f = %f \n f0 = %.f \n f2 = %.2f , %pi, %pi, %pi) 161
  • Funes de Sada - disp disp(varivel) ou disp(texto) exibe na tela o valor da varivel ou string colocado entre aspas. Exemplo: disp(Media Geral ) // exibe a frase Media Geral i = 4 disp(i) // exibe o valor armazenado na varivel i (4) nome = "maria"; disp ("Seu nome " + nome) // concatena os strings v=10 disp ("A velocidade final " + string(v)) // converte numero em string e concatena 162
  • Exemplo Calcular a distncia entre dois pontos (x1; y1) e (x2; y2) no plano cartesiano. Os pontos so digitados pelo usurio. A distncia entre dois pontos dada por: // Programa exerccio : O que faz? clear, clc x1 = input("Digite X1 da primeira coordenada: "); y1 = input("Digite Y1 da primeira coordenada: "); x2 = input("Digite X2 da segunda coordenada: "); y2 = input("Digite Y1 da segunda coordenada: "); dx = x1 - x2; dy = y1 - y2; d = sqrt(dx^2 + dy*dy); printf("A distncia %g\n", d) 163
  • Mdia de duas notas // Programa para calcular a media de duas notas clear clc nota1 = input ('Digite a primeira nota: '); nota2 = input ('Digite a segunda nota: '); media = (nota1 + nota2)/ 2; if media >= 7 resultado = ' aprovado.'; else resultado = ' reprovado. '; end printf ( "\n A mdia entre %1.2f e %1.2f %1.2f e o aluno est %s \n\n", nota1, nota2, media, resultado) 164
  • Mdia... Quem est aprovado? 165
  • Comandos de controle de fluxo - if if condio comandos1; else comandos end if condio comandos; end if condio1 comandos1; else if condio2 comandos2; else comandos3; end end 166
  • Operadores Relacionais Operador Resultado == igual a ~= , diferente de > maior do que < menor do que >= maior ou igual a
  • Operadores Lgicos Operador Descrio & e | ou ~ no A F F V V B F V F V A & B F F F V A | B F V V V ~A V V F F ~B V F V F Tabela Verdade dos operadores &, | e ~ 168
  • Operaes lgicas -->v = %t, f = %f v = T f = F -->~v ans = F -->v | f ans = T -->v & f ans = F -->a = 7; b = 8; x = a > b x = F 169
  • Exemplo do comando if // Clculo da Mdia // Autor: Gilka clear, clc nome = input("Nome = ", "s"); n1 = input("Nota 1 = "); n2 = input("Nota 2 = "); m = (n1 * 2 + n2 * 3)/5; if m >= 7 then printf("\n %s Aprovado - Mdia %.1f", nome, m) else if m >= 3 then printf("\n %s Final - Mdia %.1f", nome, m) else printf("\n %s Reprovado - Mdia %.1f", nome, m) end end 170
  • Execuo do programa 171
  • Mdia... E se a nota estiver errada? .....15, por exemplo 172
  • Comandos de controle de fluxo - while Formato: while condio comandos; end 173
  • O que faz? // Programa exerccio : Oque faz? clear, clc a = input("Informe um nmero: "); b = input("Infrme outro numero: "); r = 1; while r 0 r = modulo(a,b); a = b; b = r; end printf("\nResultado = %g\n", a) 174
  • Exemplo do comando while // Clculo da Mdia // Autor: Gilka clear, clc nome = input("Nome = ", "s"); n1 = input("Nota 1 = "); while n1 < 0 | n1 > 10 then printf("\n Nota 1 Invlida %.1f",n1) n1 = input("Nota 1 = "); end n2 = input("Nota 2 = "); while n2 < 0 | n2 > 10 then printf("\n Nota 1 Invlida %.1f",n1) n2 = input("Nota 1 = "); end 175
  • Exemplo do comando while m = (n1 * 2 + n2 * 3)/5; if m >= 7 then printf("\n %s Aprovado - Mdia %.1f", nome, m) else if m >= 3 then printf("\n %s Final - Mdia %.1f", nome, m) else printf("\n %s Reprovado - Mdia %.1f", nome, m) end end 176
  • Mdia... E se houver mis de um aluno? 177
  • Mdias.... // Clculo da Mdia Autor: Gilka clear, clc n = input("Para iniciar, Digite 0 : "); while n == 0 nome = input("Nome = ", "s"); n1 = input("Nota 1 = "); while n1 < 0 | n1 > 10 then printf("\n Nota 1 Invlida %.1f",n1) n1 = input("Nota 1 = "); end n2 = input("Nota 2 = "); while n2 < 0 | n2 > 10 then printf("\n Nota 1 Invlida %.1f",n1) n2 = input("Nota 1 = "); end 178
  • Mdias.... m = (n1 * 2 + n2 * 3)/5; if m >= 7 then printf("\n %s Aprovado - Mdia %.1f", nome, m) else if m >= 3 then printf("\n %s Final - Mdia %.1f", nome, m) else printf("\n %s Reprovado - Mdia %.1f", nome, m) end end n = input("Para continuar, Digite 0 : "); end 179
  • Calculando a mdia geral... // Programa para calcular a media de duas notas clear clc qa = 0; tm = 0; cont = input ('Para iniciar, digite 0: '); while cont == 0 nota1 = input ('Digite a primeira nota: '); while nota1 < 0 | nota1 > 10 printf ("\n %.2f - nota invlida", nota1) nota1 = input ('Digite a primeira nota: '); end 180
  • Calculando a mdia geral... nota2 = input ('Digite a segunda nota: '); while nota2 < 0 | nota2 > 10 printf ("\n %.2f - nota invlida", nota2) nota2 = input ('Digite a segunda nota: '); end media = (nota1 + nota2)/ 2; qa = qa + 1; tm = tm + media; 181
  • Calculando a mdia geral... if media >= 7 then result = "Aprovado"; else if media < 3 then result = "Reprovado"; else result = "em Final"; end end 182
  • Calculando a mdia geral... printf ("\n Mdia = %.2f - Aluno %s \n", media, result) cont = input ('Para continuar, Digite 0: '); end tg = tm / qa; printf ("\n Mdia Geral = %.2f ", tg) 183
  • Para pensar... Quando terminam esses comandos? 1) n = 4; while n
  • Exemplo Ler um conjunto de valores inteiros e positivos, ao final, digitar -1, e determine o maior valor deste entre os nmeros lidos. 185
  • Comandos de controle de fluxo - for Formato: for var = inicio : fim comandos; end for var = inicio : passo : fim comandos; end 186
  • Exemplo do comando for for i = 1:4 printf ("\n x = %g", n); end for i = 4: -1 :1 printf ("\n x = %g", n); end 187
  • Exemplo do comando for n = input (Informe um nmero); f = 1; for n = 1 : n f = f * i; printf(\n %g , i) end printf("\n Fatorial de %g = %g , n, f); 188
  • Exemplo do comando for n=3; m=2; printf("\n Matriz A:a(i,j)=i+j\n"); for i=1:m for j=1:n a(i,j)=i+j; end end disp(a) 189
  • Exemplo Elaborar um programa para escrever a tabuada de multiplicar 1 at 10. 190
  • 191
  • Exerccios faa programas para: 1. Dado o raio de uma circunferncia, calcular sua rea e seu permetro 2. Dado um nmero real x, calcular e exibir as imagens de f(x)=5x4-x3 e de g(x)=5senx-2cosx 3. Ler dois nmeros inteiros e positivos X e Y e efetuar as operaes de adio, subtrao, multiplicao, diviso de X por Y e a raiz quadrada do produto de X por Y. 4. Dada a temperatura de um corpo, em graus Fahrenheit, calcular e exibir o valor da referida temperatura em graus Celsius e em Kelvin. 192
  • Exerccios 5. Um aluno comprou trs itens em uma papelaria. Para cada item so conhecidos: nome, preo e percentual de desconto. Mostrar o nome do item, o preo do item, o preo do item com desconto e o total a pagar 6. Ler trs valores inteiros e distintos (A, B e C) e apresentar o maior valor. 7. Dados dois valores reais, apresentar a diferena do maior pelo menor. 8. Dado um nmero inteiro positivo, informar se o nmero lido par ou mpar. 193
  • Exerccios 9. Calcular as razes reais de uma funo quadrtica, dados os valores de a, b e c. 10. Receba 2 nmeros e, se o primeiro nmero for maior que zero e menor que 10, mostre a soma destes nmeros; caso contrrio, mostre a multiplicao deles. 11. Receba cinco grupos de 2 nmeros e mostre a soma destes nmeros; 12. Receba dois nmeros e mostre o maior deles; 13. Receba trs nmeros e mostre-os em ordem crescente. cbxaxxf 2194
  • Exerccios 14. Escrever um programa que l dois nmeros inteiros: inicial e final, e mostra os nmeros inteiros existentes entre o nmero inicial e o final (inclusive). Crtica: o nmero final deve ser maior do que o inicial. 15. Implemente um programa que calcula a soma dos nmeros pares entre dois nmeros lidos (inclusive). 16. Escrever programa para calcular, para N (inteiro) lido, o valor de S, dado por 121...23121 NNNNNS 195
  • Exerccios 17. Receba um valor N inteiro e positivo, calcule e mostre o fatorial de N (N!). 18. Leia dez conjuntos de dois valores, o primeiro valor corresponde ao nmero do aluno, o segundo valor corresponde sua altura em centmetros. Encontre e mostre o nmero e a altura do aluno mais baixo e do aluno mais alto. 19.Leia cinco pares de valores (a,b), todos inteiros, positivos, um de cada vez. Mostre os nmeros inteiros pares de a at b (inclusive). 20.Leia o nmero de termos e um valor positivo para x, calcule e mostre o valor da srie: ...!6!5!4!3!2!1765432xxxxxxs196
  • Introduo ao Scilab Parte 2
  • Introduo ao Scilab Prof Gilka Rocha Barbosa 198
  • Introduco ao Scilab Apresentar comandos bsicos necessrios introduo programao e desenvolvimento de programas simples. Ambiente Elementos bsicos Nmeros, Vetores e Matrizes Variveis Operadores Funes elementares Carga e gravao 199
  • Scilab Criado em 1989 por um grupo de pesquisadores da INRIA e da ENPC. Disponvel como software livre desde 1994 pelo site http://www.scilab.org Consrcio Scilab desde 2003 mantido por diversas empre-sas. Objetivos do consrcio: organizar cooperao entre os desenvolvedores obter recursos para manuteno da equipe garantir suporte aos usurios Sistemas Operacionais: Linux Windows Solaris Unix 200
  • Scilab Software livre para clculo numrico e simu-lao de sistemas fsicos. Usado nas reas: Fsica Sistemas complexos Processamento de imagens Controle e processamento de sinais Automao industrial Controle de processos Computao grfica Matemtica Modelagem biolgica ... 201
  • Scilab Ambiente utilizado no desenvolvimento de software para resoluo de problemas numricos Gratuito, software free A ltima verso est sempre disponvel, geralmente via Internet O software pode ser legalmente utilizado, copiado, distribudo, modificado Distribudo com cdigo fonte Sintaxe semelhante ao Matlab Permite interface com rotinas escritas em outras linguagens como C Suporta o desenvolvimento de conjuntos de funes voltadas para aplicaes especificas (toolboxes). 202
  • Scilab Ambiente interpreta comandos oferece um editor para a construo de programas (SciPad / Scinotes) emite mensagens de erros relativos aderncia sintaxe da linguagem e a problemas na execuo de um programa Linguagem une riqueza de expresso a detalhes sintticos exige uma postura paciente em seu aprendizado envolve uma taxa inicial de memorizao a fluncia vem com a prtica 203
  • Scilab Ambiente para desenvolvimento ou prototipao de software numrico de propsito geral. Gratuito Open Source http://www.scilab.org/ 204
  • A linguagem Scilab Como qualquer linguagem natural, a linguagem Scilab: Une riqueza de expresso a detalhes sintticos; Exige uma postura paciente em seu aprendizado, pois envolve uma taxa inicial de memorizao; A fluncia vem com a prtica. 205
  • O ambiente Scilab Interpreta comandos e programas atravs de uma console para a interao com o usurio; Oferece um editor para a construo de programas (SciNotes); Emite mensagens de erros relativos obedincia da sintaxe da linguagem e a problemas na execuo de um programa (como diviso por zero). 206
  • O ambiente Scilab Janela Console do Scilab: Barra de Menus Barra de Ferramentas Prompt de Comandos 207
  • Scilab Crie uma pasta Mude a pasta para seus arquivos 208
  • Utilizao bsica -->help // ou f1 209
  • Utilizao bsica who: lista as variveis whos (): lista e dimensiona as variveis clear: remove todas as variveis do espao de trabalho Help ou F1 : informa sobre os comandos e funes Ex.: help, help inv, help help pwd: Mostra o diretrio atual. sci: Mostra o diretrio onde o Scilab foi instalado. ls: Lista os arquivos do diretrio. 210
  • Utilizao bsica chdir(dir): Muda de diretrio. mkdir(dir): Cria um diretrio. rmdir(dir, s): Remove um diretrio. quit ou exit: sai do Scilab clear: elimina todas variveis desprotegidas clear a: elimina a varivel a clc ou F2: limpa a tela quit ou exit sai do Scilab 211
  • Algumas funes elementares abs(x): Retorna o valor absoluto, se x real, e o mdulo se x complexo acos(x), asin(x), atan(x): Retorna o ngulo (em radianos) cos(x), sin(x), tan(x), Retorna cosseno, seno ou tangente de x (x deve estar em radianos) ceil(x): Arredonda para o maior inteiro exp(x): Exponencial (e) de um valor x factorial(x): Fatorial (e) de um valor x floor(x): Arredonda para o menor inteiro imag(x): Mostra a parte imaginria de um complexo log(x), log10(x), log2(x): Log natural, base 10 e base 2 modulo(x,y): Mostra o resto da diviso de x por y real(x): Mostra a parte real de um complexo round(x): Arredonda x para o inteiro mais prximo 212
  • Exemplos de Funes de Arredondamento 213
  • Variveis Variveis correspondem a nomes para espaos de memria que so gerenciados pelo Scilab; O programador no precisa ter qualquer ideia de como tal gerncia realizada; 214
  • Variveis Os nomes das variveis so escolhidos pelo programador, respeitando as regras: O primeiro caractere do nome deve ser uma letra ou qualquer caractere dentre '%' , '_' , '#' , '$' e '?'; Os outros caracteres podem ser letras ou dgitos ou qualquer caractere dentre '_' , '#' , '!' , '$' e '?'; Caracteres acentuados no so permitidos; Nomes de variveis so sensveis a maisculas e minsculas (CASE SENSITIVE). CASA diferente das variveis Casa e casa. Palavras Reservadas devem ser evitadas 215
  • Variveis Escolha de nomes significativos para as variveis, isso ajuda a entender o que o programa faz e a prevenir erros; Nomes vlidos: a , A , Jose , total_de_alunos , #funcionarios. Nomes invlidos: 1A total de alunos funcionrios 216
  • Utilizao bsica Exemplos de atribuio: 217
  • Utilizao bsica Comando de atribuio Sintaxe: = , se no existia, passa a existir; Se existia, o valor anterior perdido; Na execuo do comando, a calculada e o resultado atribudo . 218
  • Utilizao bsica Caracteres x= a x= a Strings mg1='Ali'; mg2=SCILAB DEMOS 219
  • Funes de Manipulao de String 220
  • Utilizao bsica ... continua uma expresso em outra linha -->s = 1-1/2+1/3-1/4+1/5-1/6+1/7... -->-1/8+1/9-1/10; s = 0.6456349 ; ao final de uma expresso, o clculo feito mas o resultado no apresentado -- > A=1 // Atribui o valor 1 a A -- > b=2; // Atribui o valor 2 a b -- > A + b; // soma de A e b 221
  • Operadores aritmticos Operador Notao Soma + Subtrao - Multiplicao * Diviso / Menos Unrio - Exponenciao (potenciao) ^ ou ** 222
  • Algumas funes Funo Notao Exemplo Resultado Resto da Diviso modulo modulo(8, 3) 2 Raiz Quadrada sqrt sqrt(32) 5.6568542 Raiz Ensima ^(1/n) 8^(1/3) 2 Valor Absoluto abs abs(-8) 8 Coseno cos cos(30) 0.1542514 Tangente tan tan(7.3456) 1.7945721 Seno sin sin(%pi) 1.225D-16 Notao Scilab (e Fortran, e C, e Java, e ...) para: 1,225 x 1016 OBS: Nas funes trigonomtricas os ngulos devem ser usados em radianos. 223
  • Valores pr-definidos Varivel Valor %pi nmero . %inf innito . %i %e A base do logaritmo natural. %t ou %T Representa o valor booleano verdadeiro. %f ou %F Representa o valor booleano falso. 1224
  • Precedncia de operadores Associatividade a regra usada quando os operadores tm a mesma prioridade; Por exemplo, para as operaes de adio e subtrao (que possuem mesma prioridade) a regra de associatividade diz que a operao mais a esquerda avaliada primeiro: A-B+C+D A-B avaliada primeiro, pois est mais esquerda; 225
  • Precedncia de operadores O mesmo vale para multiplicao e diviso; Mas, para potenciao, a regra da associatividade diz que a operao mais a direita deve ser avaliada primeiro: A^B^C^D C^D avaliada primeiro, pois est mais direita. 226
  • Precedncia de operadores A ordem de prioridade pode ser alterada pelo uso do parnteses: (A+4)/3 A+4 avaliada primeiro; (A-B)/(C+D) A-B avaliada primeiro, depois a soma e por ltimo a diviso; R*3+B^(3/2)+1 3/2 avaliada primeiro. 227
  • Utilizao bsica Qual o valor de x e y aps os comandos? x = 8^1*3 y = 2*x*3 * Parnteses podem alterar prioridades 2+10/5 10/5 avaliada primeiro; A+B/C+D B/C avaliada primeiro; R*3+B^3/2+1 B^3 avaliada primeiro. Prioridade* Operao Associatividade 1 Potenciao da direita para a esquerda 2 Multiplicao Diviso da esquerda para a direita 3 Adio Subtrao da esquerda para a direita 228
  • Utilizao bsica -->a = 2^3*4 a = 32. -->b = 2^(3*4) b = 4096. -->c = 2^3^4 c = 2.418D+24 -->d = (2^3)^4 d = 4096 229
  • Utilizao bsica -->a = 2^3*4 a = 32. -->b = 2^(3*4) b = 4096. -->c = 2^3^4 c = 2.418D+24 -->d = (2^3)^4 d = 4096 Notao Scilab (Java, C, ...) para 2,418 x 1024 230
  • Elementos bsicos Nmeros, Vetores e Matrizes Uma matriz pode ser Um escalar (nmero): matriz com dimenso 1 x 1 Um vetor linha: matriz 1 x n Um vetor coluna: matriz n x1 Uma matriz bidimensional: matriz n x m Uma matriz multidimensional: matriz com dimenso n1 x n2 x n3 x ... nm 231
  • Nmeros, Vetores e Matrizes O Scilab reconhece vrios tipos de nmeros: Real: 4.607, - 199.34, Complexo: 2 + 3i (i = sqrt(-1)) Literal: nome Lgico: T/F 232
  • Exemplo Calcular a equao do segundo grau: ax2 + bx + c. As razes da equao so dadas por: aacbbxx24,221Resolvendo a equao: x2 + 4 x + 13 = 0 -- > a = 1, b = 4 , c = 13 -- > x1 = (-b + sqrt (b^2 4 * a * c)) / (2 * a) -- > x2 = (-b - sqrt (b^2 4 * a * c)) / (2 * a) x1 = -2.00 + 3.000i x2 = -2.000 3.000i 233
  • Exerccios 1. O que so variveis? 2. Quais os tipos primitivos de informao manipuladas pelo Scilab? 3. Assinale os identificadores (nomes de variveis) vlidos e identifique o que causa o erros nos identificadores no vlidos a. (x) b. Nota_1 c. Ah! d. Nota1 e. 1Nota f. Nota1 g. A(4) h. a&b i. a+b j. I00001 k. nota 1 l. nota-1 234
  • Exerccios 4. Escreva as declaraes aritmticas para o clculo das seguintes frmulas: 235
  • Exerccios 4. Para u = 1 e v = 3, avalie as expresses a) 4u b) _2v-2___ c) v3___ d) 4_v 3v (u + v)2 v3 u3 3 5. Considere as variveis A = 11, B = 5, C = -4 e D = 2. Calcule as expresses: 236
  • Exerccios 6. Qual a primeira operao a ser executada em cada um dos comandos: a. R + S W b. X + Y + C * D c. W1 + W2 / C ^2 d. A + D + B ^ 2 + E * 3 e. NOTA + MEDIA / 3 f. A * B / C * D 237
  • Exemplo -->g !--error 4 undefined variable : g -->g = 1:5 g = 1. 2. 3. 4. 5. -->g*g !--error 10 inconsistent multiplication 238
  • Vetores e matrizes As grandezas vetoriais podem ser criadas colocando-se seus componentes entre colchetes [ ] Os componentes de um vetor podem ser separados por vrgula, espao ou por ponto-e-vrgula. 239
  • Vetores Declarao de vetores: X = [ x1 x2 x3 ...] vetor linha X = [x1;x2;x3;...] vetor coluna Transposio de vetores: X 240
  • Vetores Exerccios: 1. Verifique a diferena entre: a) x = [1 2 3] b) y = [1,2,3] c) z = [1;2;3] d) xt = x e) yt = y f) zt = z 2. Dados k = [1,2,3,4,5] e w = [2,4,6,8,10], calcule: a) i = k + w d) m = i*j b) J = k*w e) n = i*j c) Transpostas de i e j f) Verifique se m = n 241
  • Vetores V = Valor_inicial : incremento : Valor_final Exemplos: A1 = 1:10 B1 = 1:2:10 C1 = 1:0.2:10 D1 = 10:-1:1 E1 = 1:%pi:20 F1 = 0:log(%e):20 G1 = 20:-2*%pi:-10 242
  • Exemplo de funo com vetor 1. Desenhe a funo f(k) = sen(k) no intervalo 0k10. --> k=0:0.1:10; --> plot (k,sin(k)) 2. Desenhe a funo g(k) = cos(k) no intervalo 0k10. --> z=cos(k); --> plot (k,z) 3. Desenhe a funo h(k) = tan(k) no intervalo 0k10. 0 1 2 3 4 5 6 7 8 9 10-1-0.8-0.6-0.4-0.200.20.40.60.810 1 2 3 4 5 6 7 8 9 10-1-0.8-0.6-0.4-0.200.20.40.60.81243
  • Vetores V2 = linspace (Valor_inicial, Valor_final, quantidade de elementos): Exemplos: A2 = linspace (1 ,10,15) B2 = linspace ( 1,2,10) C2 = linspace ( 1,0.2,10) D2 = linspace ( 10,-1,1) E2 = linspace ( 1,%pi,20) F2 = linspace ( 0,log(%e),20) G2 = linspace ( 20,-2*%pi,10) 244
  • Exerccios 4. Desenhe a funo f(x) = 2e-0,2x para o 50 pontos entre - e 2 -->x = linspace (-%pi, 2*%pi , 50); -->y = 2 * %e ^ (-0.2*x); -->plot(x,y) 5. Desenhe a funo g(x) = sen(x)cos(x) em 50 pontos entre - e 2 245
  • Operadores especiais Operador . (usado com outros operadores para operaes elemento a elemento) Exemplo: A = [1 2 3; 3 4 6; 7 8 9] B = [2 4 6;8 10 12; 14 16 18] -->A.*B ans = 2. 8. 18. 24. 40. 72. 98. 128. 162. -->A./B ans = 0.5 0.5 0.5 0.375 0.4 0.5 0.5 0.5 0.5 246
  • Matriz Uma matriz geral consiste em m*n nmeros dispostos em m linhas e n colunas: 247
  • Matriz No Scilab: -->A = [1 2 3; 4 5 6; 7 8 9] A = 1. 2. 3. 4. 5. 6. 7. 8. 9. A 248
  • Operaes com vetores Sejam M a matriz, L a linha e C a coluna Acessa elementos entre o i e o j elementos: M(i:j) Acessa ltimo elemento: M($) Acesso ltima coluna: M(:,$) Acesso ultima linha: M($,:) Acesso coluna C: M(:,C) Acesso linha L: M(L,:) Agrupa dois vetores: MA = [M M] Apaga a coluna C: M(:,C) = [] 249
  • Operaes com vetores Dimenso: length(M) Nmero de linhas e colunas: [nl , nc] = size(M) Valor mximo e posio relativa: [V,P] = max(M) Valor mnimo posio relativa: [V,P] = min(M) Mdia aritmtica: MedA = mean(M) Determinante: Dt = det(M) Diagonal: Dg = diag(M) Encontra um elemento: find(M operador elemento) Soma dos elementos: sA = sum(M) Multiplicao dos elementos: prod(M) 250
  • Operaes com vetores Multiplicao elemento: Mn = A*num Ordenao dos elementos: Ms = gsort(M) Elementos iguais a 1: U = ones(L,C) Matriz identidade: MId = eye(L,L) Matriz transposta: Mt = M Matriz com nmeros aleatrios/randmicos: Ma = rand(L,C) 251
  • Exemplo Dada a matriz A Acessar elementos entre 2 e 5 elementos: A(2:5) Acessar ltimo elemento: A($) Acessar a ltima coluna: A(:,$) Acessar a ultima linha: A($,:) Acessar a coluna 2: A(:,2) Acessar a linha 3: A(3,:) Agrupar/unir dois vetores: C = [A A] ou C = [A;A] Apagar a 2 coluna: C(:,2) = [] Inserir coluna no final: Ac = [A [6; 7; 8]] Inserir linha no final: Al = [A ; 6 7 8] 252
  • Exemplo Dimenso: length(A) Nmero de linhas e colunas: [nl , nc] = size(A) Valor mximo e posio relativa: [V,P] = max(A) Valor mnimo posio relativa: [V,P] = min(A) Mdia aritmtica: MedA = mean(A) Determinante: Dt = det(A) Diagonal: Dg = diag(A) Encontra elemento < 4: find(A < 4) Soma dos elementos: sA = sum(A) Multiplicao dos elementos: prod(A) 253
  • Exemplo Multiplicao elemento: A2 = A*2 Multiplicar a 2 coluna por 3: A3(:,2) = A3(:,2)*3 Ordenao dos elementos: As = gsort(A) Matriz unitria com dimenso 5x2: U = ones(5,2) Matriz identidade: AId = eye(5,5) Matriz transposta: At = A Matriz com nmeros aleatrios 3x4: Aa = rand(3,4) 254
  • Exerccios 1. Crie: a) Um vetor unitrio com 10 elementos b) Um vetor nulo com 5 elementos c) Um vetor com 10 elementos aleatrios d) Verifique suas dimenses 2. Dado o vetor X = [1 2 3 4 5]; a) Insira o valor 10 no final b) Apague o quinto elemento do vetor c) Atribua valor zero aos elementos entre 2 e 4 3. Dados os vetores X = [ , e , sin() , log(10)] Y = [10.3 1 1 -2 2] crie um vetor Z que seja dado pela unio de X e Y. 255
  • Exerccios 4. Desenhe a funo f(x) = |sin(t)| para o intervalo -2t2. 5. Dadas as matrizes A = [1 2 3;4 5 6] e B = [7;8;9], Determine: a. AB b. BA c. A x identidade(A) d. A*ones(A) e. A*ones(A) + identidade(A) 256
  • Exerccios 6. Dada a matriz A = [2 4 6;8 10 12; 1 2 3] a) Atribua valor zero linha 3; b) Multiplique a linha 2 por 10; c) Remova a ltima linha d) Insira o vetor B = [1 2 3] na ltima linha de A 9. Crie uma matriz 5X5 de nmeros aleatrios. a) Atribua valor 0 coluna 2. b) Multiplique os elementos de 2 a 4 da coluna 3 por 10. c) Divida os elementos de 1 a 3 da coluna 5 por 5. d) Remova a coluna 3. e) Remova a linha 2. 257
  • Exerccios 10. Dadas as matrizes 1 3 4 6 8 92 3 4 9 1 33 3 3 6 5 38 8 7 9 9 29 8 2 3 4 11 1 3 8 7 9A=2 2 2 3 4 59 0 0 1 2 30 1 2 3 7 81 9 2 3 5 68 9 0 1 2 34 2 3 4 5 5B=Calcule: a) C = A + B b) C = A*B c) C = 10*A + 5*B d) C = A + B*%i e) C = A + rand(B) f) Determinante de A g) Determinante de B h) Diagonal de A 258
  • Matrizes: operadores especiais Operador \: diviso esquerda. Seja Ax=b um sistema de equaes lineares escrito na forma matricial, sendo A a matriz de coeficientes, x o vetor da incgnitas e b o vetor dos termos independetes: 259
  • Matrizes: operadores especiais Soluo do sistema: x=A-1b (inversa de A multiplicada pelo vetor b) --> A=[1 3;3 4] --> b=[5;2] --> x=inv(A)*b --> w = A\b --> y = A^(-1)*b --> bc = A*x 1x + 3y = 53x + 4y = 2260
  • Exerccio 1. Resolva o sistema linear. Substitua as solues na equao para confirmar a soluo. 2X + 3y + 3z = 24x + 3y+ 2z = 13x + 7y + 9z = 52X 261
  • Sistemas lineares x1 + 2x2 + x3 = 5 1 2 0 x1 5 -x1 +5x2 - 3x3 = 0 -1 5 -3 x2 = 0 4x1 - 2x2 + x3 =3 4 -2 1 x3 3 A * X = B Soluo : X = A-1. B --> A=[1 2 0;-1 5 -3;4 -2 1] --> B=[5; 0; 3] --> X=A\B --> Y= A*X 262
  • Exerccio Resolver o sistema linear -x1 + x2 + 2x3 = 2 3x1+ x3 = 6 -x1 + 3x2 + 4x3 = 4 263
  • Exerccio Resolver o sistema linear -x1 + x2 + 2x3 = 2 3x1+ x3 = 6 -x1 + 3x2 + 4x3 = 4 --> A = [-1 1 2; 3 1 1; -1 3 4] A = -1 1 2 3 -1 1 -1 3 4 --> b = [2; 6; 4] b = 2 6 4 --> x = A\b x = 1. -1. 2. 264
  • Exerccio Resolva o sistema linear 265
  • Polinmios Funo poly(a, x, flag) a: matriz de nmero reais x: smbolo da varivel flag: string ("roots", "coeff"), por default seu valor "roots". 266
  • Polinmios Dado p1 = -- > p1 = poly([1, -6, -72, -27], "x", "coeff") p1 = 2 3 1 - 6x - 72x - 27x -- > r = roots(p1) // obtendo as razes do polinmio r = 0.0824886 - 0.1743828 - 2.5747724 -->p2 = poly (r, "x", "roots") // definindo pelas razes p2 = 2 3 - 0.0370370 + 0.2222222x + 2.6666667x + x 267
  • Polinmios Polinmio definido pelas suas razes -->p = poly([1 2], "s, roots) p = 2 2 - 3s + s --> Com a funo roots, comprova-se que as razes de p so, realmente, 1 e 2, -->r = roots(p) r = 1. 2. 268
  • Polinmios Polinmio criado a partir dos seus coeficientes. Ex.: criar o polinmio q = 2s + 1 -->q = poly([1 2], "s", "coeff") q = 1 + 2s -->r = roots(q) r = - 0.5 269
  • Polinmios Soma, Subtrao, Multiplicao, Diviso -->s = p + q // Adio s = 2 3 - s + s -->sb = p - q // Subtrao sb = 2 1 - 5s + s -->m = p * q // Multiplicao m = 2 3 2 + s - 5s + 2s 270
  • -->d = p / q // Diviso d = 2 2 - 3s + s ----------- 1 + 2s -->[r, c] = pdiv(p,q) // c=quociente, r=resto c = - 1.75 + 0.5s r = 3.75 Polinmios Soma, Subtrao, Multiplicao, Diviso 271
  • Polinmios -->p = poly ([5, -3, 1], x, c) // definindo o polinmio p = 2 5 - 3x + x -->h = horner(h, 2) // polinmio em x = 2 h = 3. 272
  • Polinmios Exemplo --> y = poly([1 2 3], x, c) ou --> x = poly(0,x) --> z = 1+2*x + 3*x^2 Exerccio: Dados os polinmios: y = 6x3 + 5x2 + 4x + 1 z =7x4 + 5x3 +3x Calcule: a) y + z b) y2 + 3z c) z*y/(z3) d) y*z e) z/y 273
  • Polinmios roots(z): calcula as razes de um polinmio [r,q] = pdiv(y,z): efetua a diviso e calcula quociente e resto coeff(y): retorna os coeficientes do polinmio. Exerccio: Dados os polinmios: y = 6 x5 + 10x4 + 8x3 + 10x2 + 3x + 5 z = 5x5+ 4x4 + 3x3 + 2x Calcule: a) suas razes b) os coeficientes c) o resto e o quociente das divises: y/z e z/y 274
  • Matrizes de polinmios Os elementos da matriz podem ser polinmios: Exemplo: --> s = poly(0, s); --> A = [1-2*s+s^3 3*s+4*s^2; s 2*s] Exerccio: Dadas as matrizes de polinmios: A = [2*x^2 + 3*x x ; 1 x^3+2]; B = [3*x^4 + x^2 x^5 ; 8*x + 1 5]; Calcule: A*B A/B Determinantes de A e B 275
  • Matrizes de polinmios Se A uma matriz de polinmios: A = A(num): retorna apenas os numeradores A = A(den): retorna apenas os denominadores Exemplo: s = poly(0, s) A = [(1+2*s+3*s^3)/(s+2) 3*s+1/(2*s+1); s^4/(s^2+2) 3*s^2+4*s^3] N = A(num) D = A(den) 276
  • Exerccios 1. Desenvolva uma soluo em SCILAB para encontrar as razes da equao y= 2x2 - 3x + 1 2. Apresente o grfico da equao com 30 pontos entre 0 e 5 277
  • Exerccios 1. Resolva o sistema linear 2x + 2y + 2z = 20 2x 2y + 2z = 8 2x 2y 2z = 0 2. Calcule o seno, o coseno, a tangente, a raz quadrada e a raiz cbica de x/2. 3. Calcule o logaritmo e a raiz quadrada de -1. 4. Calcule o valor da funo ex em 100 pontos do intervalo ]-1 . . . 1[ e apresente o grfico da funo 278
  • Exerccios 5. Calcule o valor da funo sin(x+pi/10)cos(x) entre -pi e pi, considerando um incremento de 0.1 entre os pontos e apresente o grfico da funo 6. Calcule o produto dos polinmios x6 + 10 e x2 - 2x + 3. 7. Obtenha o polinmio cujas razes so os nmeros 1, 2 e 3. 8. Calcule os zeros do polinmio p(x) = x6 + 4x2 - 3x + 1. 279
  • Derivadas Derivada o coeficiente angular da reta tangente ao grfico de uma funo f(x), no ponto x0 Clculo da derivada: derivat(p) onde p o polinmio. Avaliao da derivada em um ponto: horner(d,x) onde d a derivada do polinmio p e x o valor da varivel. Exemplo: Dada a funo 0.5x5 + 3x2 + 2x + 10, determine: a) o valor da funo para x = 2.5 b) a derivada de f(x) c) o valor da derivada para x = 2.5. 280
  • Derivadas - Exemplo Dada a funo 0.5x5 + 3x2 + 2x + 10, determine: a) o valor da funo para x = 2.5 b) a derivada de f(x) c) o valor da derivada para x = 2.5. -->p = poly ([10 2 3 0 0 -0.5], "x", "coef") p = 2 5 10 + 2x + 3x - 0.5x -->pt = horner (p, 2.5) pt = - 15.078125 -->d = derivat(p) d = 4 2 + 6x - 2.5x -->ptd = horner (d, 2.5) ptd = - 80.65625 281
  • Exerccio 1. Calcule a derivada de x6 + 10 ------------- x2 - 2x + 3. 282
  • Integrais A integral de uma funo f(x) outra funo, I(x), tal que a sua derivada, I(x), igual funo f(x) Integral definida aquela restrita a um determinado intervalo de x, x0 x x1 Clculo da integral: integrate(expr, v, x0 ,x1 ) onde x0 o limite inferior e x1 o limite superior. 283
  • Integrais Clculo da integral: integrate(expr, v, x0 ,x1 ) onde x0 o limite inferior e x1 o limite superior. Ex.: Dada a funo f(x) = sin(x), determine I(x), entre 0 e 1, onde : --> v = integrate('sin(x)','x',0,1) v = 0.4596977 284
  • Grficos Grficos bidimensionais: plot2d (x,y,style,xtitle,rect,frameflag,nax,axesflag,logflag,leg) opcionais Exemplo: x = [-2*%pi:0.1:2*%pi]; y = sin(x); plot2d(x,y); plot2d(x,y,-1); Exerccio Detalhe cada elemento opcional do comando plot2d 285
  • Grficos Comandos bsicos clf: limpa a tela, evitando que o prximo grfico se sobreponha ao anterior xbasc ou xbasc( ): limpa o ambiente grfico e apaga os grficos a ele associados xtitle (titulo): apresenta o ttulo do grfico legend(legenda1, legenda2,) 286
  • Grficos Comandos bsicos Exemplo: t = 0:0.1:10; S = 5 + 10*t + 0.5*2*t.*t; V = 10 + 2*t; plot2d(t,S,-2); plot2d(t,V,-4); xtitle(Cinematica); legend(Posio, Velocidade); 287
  • Grficos Grficos tridimensionais: plot3d (x,y, z, theta, alpha, leg, flag, ebox) opcionais Exemplo: Construa o grfico, considerando as varivies: x = 2 : 0.1 : 2 y = 2 : 0.1 : 2 z = (x2) y3 Exerccio Detalhe cada elemento opcional do comando plot3d 288
  • Grficos Outros grficos: bar (x,width,color,style) ou bar (x,y,width,color,style) barh (x,width,color,style) ou barh (x,y,width,color,style) pie (x,[sp],[txt]) Exemplo: -->x = [1, 2, 3, 4, 5]; y = [5, 3, 1,-1, 1]; -->bar(x); -->barh(x,y,'red') -->pie(x) -->pie(x,[0,1,0,0,1], ['um','dois','tres','quatro','cinco']) Exerccio Detalhe cada elemento opcional dos comandos bar, bar e pie 289
  • Grficos Comandos bsicos subplot: divide um janela de um grfico em sub-graficos Exemplo: subplot(221) plot2d(x,sin(x)) subplot(222) plot2d(x,cos(x)) subplot(223) plot2d(x,tan(x)) subplot(224) plot2d(x,sin(x).*cos(x)) 290