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
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
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
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
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
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
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
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
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