Você está na página 1de 71

CCMP0016 Introduo Programao

ESCOLA POLITCNICA DA UNIVERSIDADE DE PERNAMBUCO

Carga Horria Semestral: 60 horas

Introduo Programao

Nmero de Crditos:
Tericos: 3
Prticos: 1

Prof Gilka Rocha Barbosa

Pr-Requisitos: No h

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

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

Contedo programtico

PRIMEIRA UNIDADE

SEGUNDA UNIDADE

Metodologia

Bibliografia
Bsica:

Aulas tericas expositivas.


Trabalhos individuais.
Trabalhos de grupos.
Uso intensivo de computador e de
linguagem de programao

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

Consenso

Agenda

Pontualidade

Aula
1
2
3
4
5
6
7

Frequncia de acordo com as Normas da


Universidade
Material para estudo
Uso de computadores apenas quando permitido

8
9
10
11
12
13
14
15
16

No permitido o uso de celulares


No permitido gravar nem fotografar a aula
No permitido o consumo de alimentos e/ou
bebidas no laboratrio
Evitar conversas em paralelo

18

Dia
29/fev seg
03/mar qui
07/mar seg
10/mar qui
14/mar seg
17/mar qui
21/mar seg
24/mar qui
28/mar seg
31/mar qui
31/mar qui
04/abr seg
07/abr qui
11/abr seg
14/abr qui
14/abr qui
18/abr seg
21/abr qui
25/abr seg

Contedo
Apresentao da disciplina
Histrico
Histrico
Arquitetura
Arquitetura
Software
Software
Semana Santa
SCILAB
SCILAB
Aula extra
SCILAB
SCILAB
SCILAB
SCILAB
Aula extra
1 EE
Tiradentes
Correo e devoluo

Aula
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Dia
28/abr qui
02/mai seg
02/mai seg
05/mai qui
09/mai seg
12/mai qui
16/mai seg
19/mai qui
19/mai qui
23/mai seg
26/mai qui
30/mai seg
30/mai seg
02/jun qui
06/jun seg

16/jun

Contedo
Algoritmo
Algoritmo
Aula extra
SCILAB
SCILAB
SCILAB
SCILAB
SCILAB
Aula extra
SCILAB
SCILAB
SCILAB
Aula extra
2EE
2 Chamada
Atividade extraclasse maro
Atividade extraclasse abril
Atividade extraclasse maio
qui Prova Final

10

Conceitos
O que um COMPUTADOR?

Do It Right
Think
Herman Hollerith
Fundador da IBM

Mquina que recebe dados (entrada),


processa conforme programado, e
fornece dados (sada).
11

12

A evoluo dos sistemas de computador

Estrutura geral de um sistema de computao

Primeira gerao (aproximadamente entre 1951 e 1959)


Sistemas de Informao

Aplicativos

Tecnologia de vlvulas.

SGBD

Tem como marco inicial o UNIVAC, construdo em 1951.

Word

Sistema

Windows

Segunda gerao(aproximadamente entre 1955 e 1965)

CAD

Caracterizada pelos computadores transistorizados.


Tem como marco o TRADIC, construdo em 1955, alm da criao
das linguagens FORTRAN e COBOL,

Operacional

Mac OS
Linux

Terceira gerao (aproximadamente entre 1965 e 1975)

Interface de

Componentes
Monitor

Circuitos Integrados, os Chips. Fios, transistores e outros


componentes em um nico chip.

hardware

Fsicos

Quarta gerao(aproximadamente a partiir de 1975)


Microcomputadores

Componentes Bsicos Teclado


Perifricos

Tem como marco inicial o chip 8080 da Intel (1974),

Processador

Quinta gerao ....

Componentes Multimdia

Atual gerao dos computadores, notebooks, palmtops e telefonia


mvel, multimdias, computadores inteligentes e a realidade virtual.

Componentes de rede
13

Primeira gerao: Mark I - 1944

14

Primeira gerao: ENIAC - 1946

Marinha dos Estados Unidos, Universidade de Harvard e

ENIAC: Eletronic Numeric Integrator And


Calculator
18.000 vlvulas,
conseguia fazer 500 multiplicaes por
segundo

IBM
Comprimento: 18 m
Largura: 2 m
Peso: 70 ton
Fiao: 800 km
Ocupava 120 m2
Tinha milhares de rels
Fazia um barulho infernal.
Uma multiplicao de nmeros de 10 dgitos levava 3
segundos para ser efetuada.
15

16

Escala de integrao de circuitos integrados

Primeira gerao

17

Segunda gerao

http://www.tecmundo.com.br/infografico/9421-a-evolucao-dos-computadores.htm

18

Terceira gerao

19

20

Quarta gerao

Quinta gerao

21

Primeiro HD

22

Primeiro HD

Carto de memria com


maior capacidade
US$ 799.00
2014

IBM - 1956
Capacidade: 4,7 MB
Peso: 1 tonelada
Preo: + US$ 1.000.000,00

Carto de memria para smartphones


200 GB
US$ 399.00
2015
24

Interfaces

Interfaces

25

Geraes

26

Celular.......

Ericson MTA - 1956

Motorola Dynatac 8000X 1973


25 cm de comprimento
7 cm de largura,
1 kg
Bateria 20 minutos.

Memria
RAM
At 768 GB
27
27

29

Tipos de computadores

Tecnologias de hardware

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.

Arquitetura bsica de um sistema de computador

Unidade de
entrada

Unidade

Unidade de

central de

sada

processamento

Unidade de
memria

30

Unidade de entrada

Unidade de
entrada

Unidade
central de
processamento

Unidade de
sada

31

Unidade de memria principal

Unidade de
memria

Unidade de
entrada

Unidade
central de
processamento

Unidade de
sada

Unidade de
memria

Formada pelos equipamentos que permitem a


incluso de dados a serem processados pelo
sistema de computador.

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:

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

RAM (Random Access Memory).


ROM (Read Only Memory).
32

33

Unidade de memria secundria

Unidade de
entrada

Unidade
central de
processamento

Unidade de
sada

Unidade de
memria

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

Memria

Unidade
central de
processamento

Unidade de
sada

Unidade de
memria

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

1 Brontobyte (BB)

270

1024 yottabytes

1 Geopbyte (GEB)

280

1024 brontobytes

34

Armazenamento
At ento, nenhum computador alcanou a
marca de um yottabyte de armazenamento.
Mesmo se combinarmos o espao de todos
os discos de armazenamento no mundo o
valor armazenado no alcana nem um
zettabyte.
De acordo com um estudo, todos os
computadores do mundo guardavam em
dados cerca de 160 exabytes no ano 2006,
com o valor aproximado de 1 zettabyte
projetado para 2010

35

Analogia.
Google processa por dia impressionantes 20 PETABYTES de
dados processados por dia.
Se um byte, um caroo de arroz
Um Kilobyte, 1024 bytes, uma pequena tigela de arroz.
O megabyte seria quase uma saca de arroz, 25Kg.
Um gigabyte, o equivalente a um container para armazenar.
O terabyte precisa de um navio de containers para transportar
seu equivalente em arroz.
Para um petabyte, seriam necessrias 210 viagens do maior
navio de containers do mundo para transportar os gros.
Ento, seriam necessrias 4200 viagens para os 20 Petabytes,

Unidade Central de
Processamento

Tabela ASCII

Unidade de
entrada

Unidade
central de
processamento

Unidade de
sada

Unidade de
memria

American Standard Code for Information Interchange

Pastilha de silcio composta por duas unidades:


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
50

Unidade de sada

Unidade de
entrada

Unidade
central de
processamento

Unidade de
sada

51

Software

Unidade de
memria

Instruo um comando que pode ser decodificado


e executado

Formada pelos equipamentos que permitem


apresentao de resultados processados pelos
sistemas.

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

As tecnologias de sadas de dados tm evoludo


no sentido de proporcionar resultados mais
atraentes e fceis de utilizar

Programa um algoritmo expresso em linguagem


de um sistema de computador capaz de executar

Dispositivos de sada em vdeo


Dispositivos de sada impressa
Dispositivos de sada sonora

Software o conjunto de programas que um


equipamento capaz de executar, uma soluo
para determinado problema
52

53

Software
Software

Hardware

Software

Sistema Operacional

Usurio

Bsico

Exemplo
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

Software
aplicativo /
suporte
Software
bsico
Hardware

54

http://www.coladaweb.com/informatica/sistema-operacional

55

Software de suporte
Ferramentas de desenvolvimento de software
empregadas para o desenvolvimento de outro
software.

Do It Right
Think

Gerenciadores de Banco de Dados


Gerenciadores de rede
Linguagens de programao
Tradutores de linguagens de programao
....

Herman Hollerith
Fundador da IBM

56

57

Linguagens de Programao

Linguagem de programao
Conjunto de termos (vocabulrio) e
de regras (sintaxe) que permitem a
formulao de instrues a um
computador.

Nvel de
Abstrao
Facilidade

1 Gerao: Linguagens Binrias

de

2 Gerao: Linguagens Assembly

Programao

3 Gerao: Linguagens Alto-Nvel


4 Gerao: Linguagens Consulta

Consumo de

2
3
4
5

Recursos
de
Mquina

5 Gerao: Linguagens Naturais

58

Linguagens de Programao

59

Conceitos bsicos - Dados

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

60

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

61

Tipos de Dados

Tipos de Dados

Numrico

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

Nmeros
Inteiros
Reais

Caractere
Smbolos da tabela ASCII

Literal
Agregado de caracteres

Lgico
verdadeiro / falso
62

Tipos de Dados

63

Tipos de Dados

Variveis
Variveis x Constantes

reas reservadas na memria do


computador para armazenar um tipo de
dado determinado.
So posies de memria, s quais devese 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

b+5

a, b e 5 so variveis ou constantes?

64

65

Atributos das variveis

Nomes ou identificadores
Regras para definir o nome ou identificador

Toda varivel tem


um nome (identificador)
um tipo de dado
um valor

(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;
Underline pode ser o nico caractere
especial aceito;
Palavras reservadas podem no ser
Memria
aceitas.
a
x

Memria

val1

val2

inteiro

real

val1
inteiro

val2
real

66

Exemplo de identificadores
Identificadores
vlidos
A
a
nota
Nota
NOTA
a32
nota_1

67

Tipos das variveis

Identificadores
invlidos

Numrico
Inteiros
-28, 156
Reais
23.45, -9.36

5b
e 12
x-y
SAT
case
prova 2n

Lgico ou Booleano

Memria

val1

val2

inteiro

real

Falso
Verdadeiro

Caractere
a, b

Literal
aluno, 1 + 2, ou aluno, 1 + 2
68

69

Valor das variveis

Variveis compostas homogneas


Identificadas por um mesmo nome, individualizadas
por ndices, cujo contedo do mesmo tipo.

Valor: a varivel contm um valor quando est


sendo usada

Exemplo 1: Notas de 10 alunos (Vetor): N1


Memria

6,0

7,0

9,0

6,0

5,5

9,1

10,0

4,7

7,4

8,6

10

val1

val2

N1[3] referencia o terceiro elemento, cujo contedo 9,0

inteiro

inteiro

Exemplo 2: Notas de 10 alunos em dois semestres (Matriz): N2

Ateno! Uma varivel sem inicializao poder conter


um valor qualquer e imprevisvel.

6,0

7,0

9,0

6,0

5,5

9,1

10,0

4,7

7,4

8,6

10,0

8,0

1,0

0,0

8,0

7,0

10,0

4,0

3,9

2,7

10

N2[2,3] referencia o terceiro elemento da segunda linha, cujo


contedo 1,0

Costuma-se dizer que contm lixo.


70

Atribuies

Operaes

Armazena um valor em uma varivel.


ex:
X 5;
Nome fulano;
Z X + 9 * 15;
Y 12 - x + 5;
Qual o resultado de

71

A 4
B5
A B
BA

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)

72

73

Operaes

Linearizao de expresso

Expresses
Combinaes de variveis, constantes e
operadores em uma nica sentena, que tm
como finalidade a obteno de um resultado.

Tradicional

Computacional

((2/3-(5-3))+1)*5

As expresses mais comuns so as aritmticas.

Operadores
Smbolos que representam as operaes
Tipos bsicos: aritmticos, relacionais, lgicos e
atribuio

74

Operadores Relacionais

Operadores Aritmticos
Utilizados para obter resultados numricos.
Operao
Exponenciao
Radiciao

75

Implementam comparaes entre os dados

Operador

Operao
Igual a
Maior que
Menor que
Maior ou igual a
Menor ou igual a
Diferente de

** , ^
raiz, sqrt

Multiplicao

Diviso

Diviso inteira

div, quociente

Resto da diviso

resto, modulo

Adio

Subtrao

76

Operador
=
>
<
>=
<=
<> , ~=, !=

77

Operadores Lgicos

Tabela Verdade

Utilizam a lgica booleana para a construo de


expresses condicionais

Operao
Disjuno
Conjuno
Negao

Negao
A no A
F
V
V
F

Operador
OU, |, v, OR
E, &, ^, AND
NO, ~, NOT

V
V
F
F

V
F
V
F

Disjuno
A ou B
V
V
V
F

Conjuno
AeB
V
F
F
F

78
78

79
79

Prioridade das operaes

Operadores lgicos - exemplo

1: parnteses
sen(x), cos(x), abs(x), int(x),
2: funes
log(x), raiz(x), modulo(x , y)
3: unrio

Variveis
A

NOME

PROFISSAO

16 "MIRIAN" "ADVOGADO"

64 "PEDRO"

4: ** ^
5: * e /

Relaes
A + 1 >=
RAIZ(B)

NOME <>
"ANA"

PROFISSAO
= "MDICO"

6: + e
7: relacionais
8: NO

2.5

"ANA"

"MDICO"
"PROFESSOR"

9: E
10: OU
80

81

Operadores lgicos - exerccio


Variveis

Operadores lgicos - exerccio

Relaes

X Y Z

COR

NOME

1 2 5

"AZUL"

"PAULO"

4 3 1

"VERDE"

"JOS"

X2 + Y > COR = NOME


Z
"AZUL" "JOS"

"AZUL"

Tipo
numrica
numrica
numrica
literal
lgica

Contedo
2
5
9
"MARIA"
FALSO

a) X + Y > Z e NOME = MARIA


2 + 5 > 9 e MARIA= MARIA
falso e verdadeiro
falso

1 1 2 "BRANCO" "PEDRO"
1 2 1

Varivel
X
Y
Z
NOME
SIM

b) SIM ou Y >= X
falso ou 5 >= 2
falso ou verdadeiro
verdadeiro

"JOS"
82

83

Operadores lgicos - exerccio


Varivel
X
Y
Z
NOME
SIM

Tipo
numrica
numrica
numrica
literal
lgica

Contedo
2
5
9
"MARIA"
FALSO

Do It Right
Think

c) no SIM e quociente(Z,Y) + 1 = X
no falso e quociente (9,5) + 1 = 2
no falso e verdadeiro
verdadeiro

Herman Hollerith
Fundador da IBM

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
84

85

Introduo ao Scilab

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

Parte 1
86

Scilab

87

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

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 empresas.
Objetivos do consrcio:
organizar cooperao entre os desenvolvedores
obter recursos para manuteno da equipe
garantir suporte aos usurios
Sistemas Operacionais:
Linux
Windows
Solaris
Unix
88

89

Scilab

Scilab
Ambiente

Areas:

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

Fsica
Sistemas complexos
Processamento de imagens
Controle e processamento de sinais
Automao industrial
Controle de processos
Computao grfica
Matemtica
Modelagem biolgica
...

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
90

O ambiente Scilab

91

Menu Principal - Arquivo

Janela Console do Scilab:


Barra de Menus
Barra de Ferramentas

Prompt de Comandos

92

Executar... : executa um programa editado


no Scilab e que foi salvo em algum
dispositivo.
Abrir um Arquivo... : abre um programa que
j existe e que foi salvo em algum
dispositivo para que o mesmo seja editado
atravs do scinotes, que o editor de textos
do Scilab.
...

93

Menu Principal - Editar

Menu Principal - Controle

Recortar, Copiar, Colar, Esvaziar a rea de


transferncia, selecionar tudo e
Mostrar/esconder a barra de transferncia:
sequem o padro Windows).
Limpar histrico: apaga os registros de tudo
que foi digitado anteriormente.
Limpar o console: limpa o ambiente de trabalho
sem apagar o histrico do que foi digitado
anteriormente
Preferncias: Permite alterar a aparncia do
ambiente de trabalho. Por exemplo, mudar a
cor do fundo do ambiente de trabalho e a cor da
letra.

Retomar: para a execuo de um programa


ou de uma funo e retorna o resultado
obtido at ento, juntamente com as
variveis usadas no programa ou na funo.
Abortar: interrompe uma avaliao que est
em execuo.
Interromper: Interrompe um loop que est
sendo executado.

94

Menu Principal - Aplicativos

95

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;
Os nomes das variveis so escolhidos pelo
programador, respeitando as regras:

Scinotes: o editor de textos do Scilab.


neste ambiente que so feitos programas
para serem executados no Scilab.
Xcos: o editor de diagrama de blocos do
Scilab.

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
96

97

Variveis

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.';
Salve com o nome
else
Media
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)

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
98

Teste!!!!!!!!!!

99

Navegao
Setas de Direcionamento
: Disponibiliza no prompt os comandos
digitados anteriormente, do ltimo comando
digitado ao primeiro.
: Disponibiliza os comandos digitados
anteriormente, do atual ao ltimo comando
digitado.
: Avana o cursor um caractere.
: Retorna o cursor um caractere.

execute
Media

100

101

Operadores
Aritmticos
Adio: +
Subtrao: Multiplicao: *
Diviso: /
Potenciao: ^

De atribuio
Atribuio: =

Booleanos
Verdadeiro: %t
Falso : %f

Precedncia de operadores Aritimticos


Lgicos

Prioridade*

Conjuno e: &
Negao no: ~
Disjuno ou: |

Relacionais
Igualdade: ==
Diferente de : ~= ou <>
Menor que: <
Menor ou igual: <=
Maior que: >
Maior ou igual: =>

Associatividade

Potenciao

da direita para a esquerda

Multiplicao
Diviso

da esquerda para a direita

Adio
Subtrao

da esquerda para a direita

Na adio e subtrao (que possuem mesma prioridade), a


operao mais a esquerda avaliada primeiro:
A-B+C+D

A-B avaliada primeiro

O mesmo vale para multiplicao e diviso;


Mas, para potenciao, a operao mais a direita avaliada
primeiro:
A^B^C^D

102

Precedncia de operadores

C^D avaliada primeiro.

* Parnteses podem alterar prioridades

103

Exerccio
Qual o valor de x e y aps os comandos?

A ordem de prioridade pode ser alterada


pelo uso do parnteses:
(A+4)/3

Operao

a) x = 8^1*3
b) y = 2*x*3

Qual a operao primeiro avaliada?

A+4 avaliada primeiro;

a) 2+10/5
b) A+B/C+D
c) R*3+B^3/2+1

(A-B)/(C+D) A-B avaliada primeiro,


depois a soma
e por ltimo a diviso;

Qual o valor de a, b, c e d?
a)
b)
c)
d)

R*3+B^(3/2)+1 3/2 avaliada primeiro.

104

a = 2^3*4
b = 2^(3*4)
c = 2^3^4
d = (2^3)^4
105

Comandos Bsicos do Scilab

Utilizao bsica

Comando

-->a = 2^3*4
a =
32.

clear
clear x

-->b = 2^(3*4)
b =
4096.
-->c = 2^3^4
c =
2.418D+24
-->d = (2^3)^4
d =
4096

Apaga todas as variveis criadas


Apaga apenas a varivel x

help ou F1

informa sobre os comandos e funes

F1 x

informa sobre o comando ou funo x

.
[ ] ou { }
//
.. ou ...
Notao Scilab (Java, C, ...)
24
para 2,418 x 10

Ao

Separa decimais
Constroem vetores e matrizes
Faz comentrios
Indica que a linha continua na prxima linha

Separa operaes ou elementos da mesma


linha de uma matriz ou vetor

No exibe o resultado do comando.


Separa as linhas de uma matriz

106

Comandos Bsicos do Scilab

Funes Bsicas da Matemtica


Funo

Resumo dos Comandos Bsicos


Comando

Raiz Quadrada
Exponencial

Ao

gsort(x)

Coloca os valores do vetor x ou da matriz x em


ordem decrescente

gsort(x,"lc",
"i")

Coloca os valores do vetor x ou da matriz x em


ordem crescente

format(x)

Define a quantidade de algarismos x a ser


exibida nos resultados das operaes

107

Fatorial
valor absoluto
Fatorao
Diferena de conjuntos

108

Comando
sqrt(x)
exp(x) ou %e^x
factorial(x)
abs(x)
factor(x)
setdiff(A,B)

Arredonda para o inteiro maior ou igual

ceil(x)

Arredonda para o inteiro menor ou igual

floor(x)

109

Funes Bsicas da Matemtica


Funo

Funes trigonomtricas
Funo

Comando
(radianos)

Comando
(graus)

Seno

sin(x)

sind(x)

Comando

Logaritmo base 10

log10(x)

Logaritmo base 2

log2(x)

Cosseno

cos(x)

cosd(x)

Logaritmo natural

log(x)

Tangente

tan(x)

tand(x)

Inversa do Seno

asin(x)

asind(x)

modulo(x,y)

Inversa do Cosseno

acos(x)

acosd(x)

Mnimo mltiplo comum

lcm(int32([x,y]))

Inversa da Tangente

atan(x)

atand(x)

Mximo divisor comum

gcd(int32([x,y]))

Secante

sec(x)

secd(x)

Cossecante

csc(x)

cscd(x)

Cotangente

cotg(x)

cotd(x)

Primos at o valor x

primes(x)

Resto da diviso

Arredonda para o inteiro mais prximo

round(x)

111

110

Alguns exemplos de funes

Algumas constantes pr-definidas

Funo

Notao

Exemplo

Resultado

Constante

Resto da Diviso

modulo

modulo(8, 3)

nmero .

%pi

innito .

%inf

Raiz Quadrada

sqrt

sqrt(32)

5.6568542

Raiz Ensima
Valor Absoluto

^(1/n)
abs

8^(1/3)
abs(-8)

2
8

cos
tan
sin

cos(30)
tan(7.3456)
sin(%pi)

0.1542514
1.7945721
1.225D-16

Coseno
Tangente
Seno

Constante Imaginria i (n complexo)


Constante de Euler (e)
A base do logaritmo natural.

Notao

%i
%e

Representa o valor booleano verdadeiro.

%t ou %T

Representa o valor booleano falso.

%f ou %F

Notao Scilab (e Fortran, e C,


e Java, e ...) para: 1,225 x 10-16

112

113

Exerccio

Elementos bsicos
Nmeros, Vetores e Matrizes
Uma matriz pode ser
Um escalar (nmero): matriz com dimenso
1x1
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

1. Calcule as expresses matemticas


a)

b)

c)

d)

2. Defina valores para a, b, c e d, e calcule as


expresses
a)
b)
114

Nmeros, Vetores e Matrizes

Exemplo
Calcular a equao do segundo grau: ax2 + bx + c.
As razes da equao so dadas por:

O Scilab reconhece vrios tipos de nmeros:

x1 , x 2 =

Real: 4.607, - 199.34,


Complexo: 2 + 3i (i = sqrt(-1))
Literal: nome
Lgico: T/F

b b 2 4 ac
2a

Resolvendo a equao: x2 + 4 x + 13 = 0

116

117

Exemplo

Exemplo

Calcular a equao do segundo grau: ax2 + bx + c.


As razes da equao so dadas por:

x1 , x 2 =

-->g
!--error 4
undefined variable : g

b b 2 4 ac
2a

-->g = 1:5
g =
1. 2. 3.

Resolvendo a equao: x2 + 4 x + 13 = 0
-- > a = 1, b = 4 , c = 13

4.

5.

-- > x1 = (-b + sqrt (b^2 4 * a * c)) / (2 * a)


-- > x2 = (-b - sqrt (b^2 4 * a * c)) / (2 * a)

-->g*g
!--error 10
inconsistent multiplication

x1 = -2.00 + 3.000i
x2 = -2.000 3.000i
118

Exerccios

119

Exerccios
4. Escreva as declaraes aritmticas para o clculo
das seguintes frmulas:

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

120

121

Exerccios
4. Para u = 1 e v = 3, avalie as expresses
a) 4u
b) _2v-2___
c) v3___
d)
2
3
3
3v
(u + v)
v u

Exerccios
6. Qual a primeira operao a ser

4_v
3

executada em cada um dos comandos:


a. R + S W

5. Considere as variveis A = 11, B = 5, C = -4 e


D = 2. Calcule as expresses:

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
122

Vetores e matrizes

123

Vetores e matrizes Relembre comandos


Comando

As grandezas vetoriais podem ser criadas


colocando-se seus componentes entre
colchetes [ ]

Separa as linhas de uma matriz

Define um vetor com valores


equidistantes, onde x o menor
valor, y a distncia e z o valor
mximo

x:y:z

Os componentes de um vetor podem ser


separados por vrgula, espao ou por
ponto-e-vrgula.

linspace(x,y,n)

124

Ao

Define um vetor com valores


equidistantes, onde x o menor
valor, y o maior valor e n a
quantidade de valores.

125

Vetores

Vetores
Exerccios:

Declarao de vetores:

1. Verifique a diferena entre:


a) x = [1 2 3]
b) y = [1,2,3]

X = [ x1 x2 x3 ...] vetor linha

d) xt = x

X = [x1;x2;x3;...] vetor coluna

e) yt = y

c) z = [1;2;3]
f) zt = z

2. Dados k = [1,2,3,4,5] e w = [2,4,6,8,10], calcule:

a) i = k + w
b) J = k - w
c) Transpostas de i e j

d) m = i*j
e) n = i*j
f) Verifique se m = n

126

127

Vetores

Vetores

V = Valor_inicial : incremento : Valor_final

V2 = linspace (Valor_inicial, Valor_final,

quantidade de elementos):

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

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

129

Exerccios

Matriz

1. Construa um vetor com valores mltiplos

Uma matriz geral consiste em m*n nmeros


dispostos em m linhas e n colunas:

de 7, onde o primeiro valor seja 7 e o


ltimo seja 350.
2. Construa um vetor com valores mltiplos
de 13, onde o primeiro valor seja 260 e o
ltimo seja 13.
3. Construa um vetor com 20 valores entre 0
e 1.

130

Exemplo

131

Exerccios
Defina as seguintes matrizes no Scilab:

1
A = 3
7

2
4
8

3
6
9

2
B = 8
14

4
10
16

A = [1 2 3; 3 4 6; 7 8 9]

6
12
18

1
X=
10
100
1000

1
10
100
1000

1
1
10
10
100
100
1000 1000

B = [2 4 6;8 10 12; 14 16 18]


C= A * B

E = A.*B

D= A/B

F = A./B
133

Exerccios

Vetores e Matrizes Comandos

Defina a seguinte matriz no Scilab, usando o


comando dois pontos :

X=

10

10

12

14

16

18

20

11

13

15

17

19

25

30

35

40

45

50

5 10

15 20

Comando
A\b
A

Soluo do sistema Ax=b


Transposta da matriz A

A-1 ou inv(A)
det(A)
diag(A)
diag(A)

Ao

Inversa da matriz A
Determinante da matriz A
Gera uma matriz diagonal com
os valores do Vetor A
Extrai a diagonal principal da
matriz A

134

Vetores e Matrizes

135

Vetores e Matrizes
Comando

Operador

Operao

+
-

Soma
Subtrao

*
^
.*
./
.^

Multiplicao
Potenciao
Multiplicao valor por valor
Diviso valor por valor
Potenciao valor por valor

eye(m,m)
max(A)
min(A)

Ao
Gera uma matriz identidade de tamanho m
Extrai o maior valor da matriz A ou do vetor A
Extrai o menor valor da matriz A ou do vetor A

mean(A)

Calcula o media aritmtica dos valores


matriz A ou do vetor A

trace(A)

Calcula o valor do trao da matriz A

da

ones(n,m)

Gera uma matriz de uns com n linhas e m


colunas

gsort(x)

Coloca os valores do vetor x ou da matriz x em


ordem decrescente

gsort(x,"lc","i")

Coloca os valores do vetor x ou da matriz x em


ordem crescente

= usado para atribuio e no para comparao


136

137

Vetores e Matrizes
Comando

Vetores e Matrizes
Ao

Comando
A($)
A($, :)

rand(n,m)

Gera uma matriz com nmeros


aleatrios com n linhas e m colunas
zeros(n,m) Gera uma matriz de zeros com n
linhas e m colunas
A(i , :)
Acesso i-sima linha da matriz A
A(: , j)
Acesso j-sima coluna da matriz A
A(i:j , :)
Acesso aos valores da i-sima linha
at a j-sima linha da matriz A
A(: , i:j)

A(: , $)

Ao
Acessa o ltimo valor da matriz A
Acessa a ltima linha da matriz A
Acessa a ltima coluna matriz A

A(i , :)=[]
A(: , j)=[]
A($)=[]
A($)=[]

Acesso aos valores da i-sima coluna


at a j-sima coluna da matriz A

Remove a i-sima linha da matriz A


Remove a j-sima coluna da matriz A
Remove o ltimo valor do vetor A
Remove o ltimo valor da matriz A e a
transforma em um vetor coluna

138

Vetores e Matrizes
Comando
A(i , :)=x
A(: , j)=x
A(i , j)=x
length(A)
size(A)

139

Matriz - Exemplo
Ao

Atribui o valor x i-sima linha


matriz A
Atribui o valor x j-sima coluna
matriz A
Atribui o valor x posio (i, j)
matriz A
Exibe a quantidade de valores
matriz A ou do vetor A

da
da

No Scilab:

da

-->A = [1 2 3; 4 5 6; 7 8 9]
M =

da

1.
4.
7.

Exibe o tamanho da matriz A ou do


vetor A
140

2.
5.
8.

3.
6.
9.

141

Exemplo

Exemplo

Dada a matriz A

Dimenso: length(A)

Acessar elementos entre 2 e 5 elementos: A(2:5)

Nmero de linhas e colunas: [nl , nc] = size(A)

Acessar ltimo elemento: A($)

Valor mximo e posio relativa: [V,P] = max(A)

Acessar a ltima coluna: A(:,$)

Valor mnimo posio relativa: [V,P] = min(A)

Acessar a ultima linha: A($,:)

Mdia aritmtica: MedA = mean(A)

Acessar a coluna 2: A(:,2)

Determinante: Dt = det(A)

Acessar a linha 3: A(3,:)


Agrupar/unir dois vetores: C = [A A] ou C = [A;A]

Diagonal: Dg = diag(A)

Apagar a 2 coluna: C(:,2) = []

Encontra elemento < 4: A(find(A < 4))

Inserir coluna no final: Ac = [A [6; 7; 8]]

Soma dos elementos: sA = sum(A)

Inserir linha no final: Al = [A ; 6 7 8]

Multiplicao dos elementos: prod(A)


142

Exemplo

143

Exerccios

Multiplicao elemento: A2 = A*2

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

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)

2. Dado o vetor X = [1 2 3 4 5];

Matriz transposta: At = A
Matriz com nmeros aleatrios 3x4: Aa = rand(3,4)

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)] e Y =

[10.3 1 1 -2 2], crie um vetor Z que seja dado pela unio


de X e Y.
144

145

Exerccios

Exerccios
5. 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

4. Dadas as matrizes A = [1 2 3;4 5 6] e

B = [7;8;9], Determine:
a.
b.
c.
d.
e.

AB
BA
A x identidade(A)
A*ones(A)
A*ones(A) + identidade(A)

6. Crie uma matriz 5X5 de nmeros aleatrios.


a) Atribua valor 0 coluna 2.
b) Divida os elementos de 1 a 3 da coluna 5 por 5.
c) Remova a coluna 3.
d) Remova a linha 2.
e) Extraia um vetor de com 3 linhas
146

Exerccios
10. Dadas as matrizes

A=

B=

147

Matrizes: operadores especiais


Calcule:

Operador \: diviso esquerda.

134689
234913
333653
887992
982341
113879

a) C = A + B

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:

222345
900123
012378
192356
890123
423455

e) C = A + rand(B)

b) C = A*B
c) C = 10*A + 5*B
d) C = A + B*%i
f) Determinante de A
g) Transposta de B
h) Diagonal de A
i) Inversa de B
148

149

Matrizes: operadores especiais

Exerccio

Soluo do sistema:

1. Resolva o sistema linear.

x=A-1b (inversa de A multiplicada pelo vetor b)

2X
2
X + 3y + 3z = 2
4x + 3y+ 2z = 1
3x + 7y + 9z = 5

1x + 3y = 5
3x + 4y = 2
--> A=[1 3;3 4]

Substitua as solues na equao para


confirmar a soluo.

--> b=[5;2]
--> x=inv(A)*b
--> w = A\b
--> y = A^(-1)*b
--> bc = A*x
150

Sistemas lineares
x1 + 2x2 + x3 = 5
-x1 +5x2 - 3x3 = 0
4x1 - 2x2 + x3 =3

151

Exerccio
1 2 1
-1 5 -3
4 -2 1
A

x1
x2
x3
*

Resolver o sistema linear


-x1 + x2 + 2x3 = 2
3x1+ x3 = 6
-x1 + 3x2 + 4x3 = 4

5
0
3

= B

Soluo : X = A-1. B
-->
-->
-->
-->

A=[1 2 1;-1 5 -3;4 -2 1]


B=[5; 0; 3]
X=A\B
Y= A*X

152

153

Exerccio

Exerccio

Resolver o sistema linear


-x1 + x2 + 2x3 = 2
3x1+ x3 = 6
-x1 + 3x2 + 4x3 = 4 --> A = [-1 1 2; 3 0 1; -1 3 4]

Resolva o sistema linear

A=
-1
1
2
3 -1
0
-1
3
4
--> b = [2; 6; 4]
b=
2
6
4
--> x = A\b
x=
1.25
- 1.25
2.25.

154

Polinmios

155

Polinmios
Comandos

Ao

x=poly(0,x)

Define x como sendo a


varivel do polinmio
p=poly(A,x,coeff) Define o polinmio p com a
varivel x, a partir do vetor A
formado pelos coeficientes do
polinmio, do menor para o
maio grau
p=poly(A,x,roots") Define o polinmio p com a
varivel x, a partir do vetor A
formado
pelas
razes
do
polinmio

Funo poly(a, x, flag)


a: matriz de nmero reais
x: smbolo da varivel
flag: string ("roots", "coeff"), por default seu
valor "roots".

156

157

Polinmios

Polinmios
Comandos/Operadores
Ao/Operao
+,-,*,^
Soma, subtrai, multiplica e
eleva a uma potncia,
respectivamente
[Resto,Quoc]=pdiv(p,d) Divide o polinmio p pelo
polinmio d
roots(p)
Calcula
as
razes
do
polinmio p
horner(p,x)
Calcula
o
valor
do
polinmio p para o valor de
x

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

158

Polinmios

159

Polinmios

Polinmio definido pelas suas razes


-->p = poly([1 2], "s, roots)

Polinmio criado a partir dos seus coeficientes.


Ex.: criar o polinmio q = 2s + 1

p=

-->q = poly([1 2], "s", "coeff")


q=
1 + 2s

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.

-->r = roots(q)
r=
- 0.5

160

161

Polinmios

Polinmios Soma, Subtrao, Multiplicao, Diviso

Soma, Subtrao, Multiplicao, Diviso

-->s = p + q // Adio

-->d = p / q // Diviso
d=
2
2 - 3s + s
----------1 + 2s

s=
2
3-s+s
-->sb = p - q // Subtrao
sb =
2
1 - 5s + s

-->[r, c] = pdiv(p,q) // c=quociente, r=resto


c=
- 1.75 + 0.5s
r=
3.75

-->m = p * q // Multiplicao
m=
2
3
2 + s - 5s + 2s
162

Polinmios

163

Exerccio

-->p = poly ([5, -3, 1], x, c)

// definindo o polinmio

1.

p=
2
5 - 3x + x

-->h = horner(p, 2)

Dados os polinmios:
y = 6x3 + 5x2 + 4x + 1
z =7x4 + 5x3 +3x
Calcule:
a)
b)
c)
d)
e)

// polinmio em x = 2

h=
3.

164

y+z
y2 + 3z
z*y/(z3)
y*z
z/y

165

Exerccio

Funes Matemticas

2. Dados os polinmios:

y = 6 x5 + 10x4 + 8x3 + 10x2 + 3x + 5


z = 5x5+ 4x4 + 3x3 + 2x

Calcule:
a)
b)
c)
d)

suas razes
os coeficientes
o valor para x = 4
o resto e o quociente das divises y/z e z/y

Comandos

Ao

function
y=f(x),y=10+2*x,endfunction

Define a funo
f(x)=10+2x

function fxy=g(x,y),fxy=x2+y2x*y+5, endfunction

Define a funo
g(x,y)=x2+y2xy+5
Calcula o valor
da funo, dado
x ou x,y

f(x), g(x,y)

3. O que fazem os comandos real e imag?


166

Exerccios

Exerccios
1. Resolva o sistema linear

Defina as seguintes funes no Scilab:


a)
b)
c)
d)

f(x)=x4+7x3-8x2+16x+84. Calcule f(3)


f(x)=e2x-1 . Calcule f(5)
f(x)=0,5Ln(x+5). Calcule f(10)
g(x)=3sen(x)+0,5cos(x2). Calcule g(60)

e) h(x,y)=x2+y2+2,5xy-x-2y+2.Calcule h(-1,3)
f) g(x) = e-22x . Calcule g(0)
x!
g) Seja a funo f(x) = x2+2x-1. Calcule f(x) para x=(1
3 4 5 6 7 8).
h) Seja a funo h(x)= tangente(2). Calcule h(45).
i)
j)

169

2x + 2y + 2z = 20
2x 2y + 2z = 8
2x 2y 2z = 0
2. Calcule o seno, o coseno, a tangente, a raiz
quadrada e a raiz cbica de x/2.
3. Calcule o logaritmo e a raiz quadrada de -1.
2

4. Calcule o valor da funo ex em 100 pontos do


intervalo ]-1 . . . 1[

Seja a funo g(x) = arco tangente(x). Calcule g(1).


Seja a funo m(y)=seno(2y). Calcule m(y) para y=(30
45 60 90 180 270).
170

5. Desenvolva uma soluo em SCILAB para


encontrar as razes da equao y= 2x2 - 3x + 1
171

Derivadas e Integrais

Exerccios
5. Calcule o valor da funo
sin(x+pi/10)cos(x) entre -pi e pi,
considerando um incremento de 0.1

Comandos

Ao

derivat(p)

Calcula a derivada de um
polinmio p
intg(x0 , x1 , f)
Calcula a integral da funo
f(x) no intervalo (x0 , x1)
integrate(expr, v, x0 ,x1 ) Calcula a integral de expr
no intervalo (x0 , x1)
.

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.

Scilab s calcula derivadas de polinmios e integrais definidas.


172

Exemplo

173

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

-->function y=f(x),y=x*sin(30*x)/sqrt(1((x/(2*%pi))^2)),endfunction
-->I=intg(0,2*%pi,f)
I =
- 2.5432596

174

175

Exemplo

Exerccios
1.

a)
b)
c)
d)
e)
f)

Dada a funo f(x) = sin(x), determine I(x), entre


0 e 1, onde :
--> I = integrate('sin(x)','x',0,1)
I =
0.4596977

176

Exerccios

177

Grficos

2. Calcule a integral das seguintes funes:


a) f(x)=x4+7x3-8x2+16x+84. Calcule f(3)
b) f(x)=e2x-1 . Calcule f(5)
c) f(x)=0,5Ln(x+5). Calcule f(10)
d) g(x)=3sen(x)+0,5cos(x2). Calcule g(60)
e) h(x,y)=x2+y2+2,5xy-x-2y+2.Calcule h(-1,3)
f) g(x) = e-22x . Calcule g(0)
x!

Comandos

Ao

plot(x,y)

Constri grficos no plano cartesiano


plot2d(x,y) ortogonal, onde x e y so vetores ou
matrizes
fplot2d(x,f) Constri grficos de uma funo f(x)
no plano cartesiano ortogonal
plot3d(x,y,z) Constri
grficos
no
plano
tridimensional, onde x um vetor de
tamanho n, y um vetor de tamanho
m e z uma matriz (n X m)
fplot3d(x,y,f) Constri grficos de uma funo
f(x,y) no plano tridimensional
178

179

Grficos

Grficos

Comandos
scf
scf(x)

Ao
Cria um ambiente (janela) grfico
Cria
um
ambiente
grfico
identificado pelo valor x.
clf
Limpa o ambiente grfico
clf(x)
Limpa
o
ambiente
grfico
identificado pelo valor x
subplot(m,n,p) Cria um ambiente matricial para a
construo de mais de um grfico na
mesma janela, onde:
m - quantidade de colunas
n - quantidade de linhas
p - posio do grfico

Comandos
xtitle (titulo)

Ao
Apresenta o ttulo do
grfico
legend(legenda1, legenda2,) Cria legenda no
grfico
bar(x)
Constri grfico de
bar(x,y)
colunas.
barh(x)
Constri grfico de
barh(x,y)
barras horizontal.
pie(x)
Constri grficos de
setores (pizza)

180

181

Exemplo

Exemplo
1. Desenhe a funo f(k) = sen(k) no intervalo
0k10.
--> clf
--> k=0:0.1:10;
--> plot (k,sin(k))

4. Desenhe a funo f(x) = 2e-0,2x para o 50 pontos


entre - e 2

0.8
0.6

--> clf

0.4
0.2

-0.2

-->x = linspace (-%pi, 2*%pi , 50);

-0.4
-0.6
-0.8
-1

10

-->y = 2 * %e ^ (-0.2*x);

2. Desenhe a funo g(k) = cos(k) no intervalo


0k10.
--> clf
--> z=cos(k);
--> plot (k,z)

-->plot(x,y)

0.8
0.6
0.4
0.2

-0.2
-0.4
-0.6
-0.8
-1

5. Desenhe a funo g(x) = sen(x)cos(x) em 50


pontos entre - e 2

10

3. Desenhe a funo h(k) = tan(k) no intervalo


0k10.
182

183

Exemplo

Exemplo

plot2d (x,y,style,xtitle,rect,frameflag,nax,axesflag,logflag,leg)

scf

opcionais

t = 0:0.1:10;

clf
x = [-2*%pi:0.1:2*%pi];
y = sin(x);
subplot(1,2,1)
plot2d(x,y);
subplot(1,2,2)
plot2d(x,y,-1);

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);
184

Exemplo

185

Exemplos
bar (x,width,color,style)
barh (x,width,color,style)
pie (x,[sp],[txt])

plot3d (x,y, z, theta, alpha, leg, flag, ebox)


opcionais

scf
x = [1, 2, 3, 4, 5]; y = [5, 3, 1,-1, 1];
subplot(221)
bar(x);
subplot(222)
barh(x,y,'red')
subplot(223)
pie(x)
subplot(224)
pie(x,[0,1,0,0,1], ['um','dois','tres','quatro','cinco'])

Construa o grfico, considerando as varivies:

scf
x = 2 : 0.1 : 2
y = 2 : 0.1 : 2
z = (x^2)*y^3
plot3d(x, y, z)
186

187

Grficos

Grficos
Na aba de X

Aparncia do Grfico

Text: identifica a
abscissa.
Font size/Color: tamanho
e cor da fonte.
Font style: tipo da fonte
Location: coloca o eixo da
abscissa na origem.
Grid color: coloca grade
vertical no grfico.

Com a janela grfica aberta, clicar em


Editar e, em seguida, Propriedade dos eixos.
O Scilab abre uma janela onde possvel
melhorar a aparncia do grfico.

188

Grficos

189

Grficos

Na aba de Y

Na aba Style

Text: identifica a orde


nada.
Font size/Color: define
tamanho e cor da fonte.
Font style: define o tipo
da fonte.
Location: coloca o eixo
da ordenada na origem.
Grid color: coloca grade
horizontal no grfico.

Font style: define o tipo


da fonte dos eixos.
Font color: define a cor
da fonte dos eixos.
Font size: define o
tamanho da fonte dos
eixos.
Back color: coloca fundo
colorido no grfico.
Line Style: tipo da linha.
190

191

Grficos

Exerccios

Salvando um Grfico
Aps concludo, um grfico pode ser salvo
de duas maneira:

1. Construa os grficos da seguintes funes:

a)
b)
c)
d)
e)

Como arquivo do Scilab: tem extenso scg e


s pode ser aberto no Scilab. Para isso, basta
clicar em Arquivo e Salvar... .
Como imagem: pode ter extenso jpeg, png,
eps, pdf, gif, bpm e fig. Para tal, basta clicar
em Arquivo, Exportar para... e escolher o tipo
da imagem

f(x)=x3 - 9x +3, para -4 x 4.


y= xLn(x) 1, para 0 x 4.
g(x)=ex+1 , para x > 0.
s= seno(x2)
h(x)= 1/(x2 +2x)

192

193

Introduo
Programao

Do It Right
Think

Algoritmos

Herman Hollerith
Fundador da IBM

194

Algoritmo

Sacar dinheiro num banco 24 horas

Passo
Passo
Passo
Passo

Ir at um banco 24 horas.
Colocar o carto.
Solicitar a quantia desejada.
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.

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.

1:
2:
3:
4:

196

197

Algoritmo - exemplos

Representao de Algoritmos
Propriedades de um algoritmo:

1. Somar trs nmeros

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.

2. Fazer um sanduche
3. Trocar uma lmpada

Teste de mesa

4. Ir para a escola

Testes de verificao da corretude de um


algoritmo de forma simples e interativa.

198

199

Exemplo de algoritmo
Mtodo para construo de algoritmos

Mostrar o resultado da soma de dois nmeros

1. Ler atentamente o enunciado, destacando os


pontos mais importantes;

a) Descrio narrativa
Passo 1: Receber os dois nmeros que sero somados.
Passo 2: Somar nmeros.
Passo 3: Mostrar o resultado obtido.

2. Definir os dados de sada

Quais dados sero gerados

c) Pseudocdigo

3. Definir os dados de entrada

b) Fluxograma

Quais dados sero recebidos

4. Definir o processamento

ALGORITMO soma
DECLARE N1, N2, S : NUMRICO
INICIO
LEIA (Digite dois nmeros, N1, N2)
S N1 + N2
ESCREVA (Soma = , S)
FIM

Incio

N1, N2

Quais clculos sero efetuados e quais as restries


para esses clculos.

S = N1 + N2

5. Construir o algoritmo utilizando uma


representao escolhida;

S
Fim

6. Testar o algoritmo realizando simulaes.


200

Exerccios - Usando pseudocdigo

205

Estrutura de um algoritmo

1. Faa um algoritmo para mostrar o resultado da


diviso de dois nmeros;

Dados de
entrada

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;

Processamento

Dados de
sada

Algoritmo <nome do algoritmo>;


declarao de variveis;
incio

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

comando 1;
comando 2;
....
comando n;

fim.
206

207

Estrutura de um algoritmo

Algoritmos
Componentes Bsicas de um Pseudocdigo

Algoritmo soma
declare A, B, C : numrico;
Incio
leia (Informe dois nmero:, A, B);
C A + B;
escreva(O valor da soma :, C);
Fim.

Componente

Significado

Declare
Escreva
Leia
Se, ento, seno
Enquanto, para

Define o tipo da varivel


Mensagem, Sada de dados
Entrada de dados
Tomada de deciso
Estrutura de repetio
Atribuio

208

Atribuio

209

Exerccios

Atribui valores ou operaes a variveis.

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?

:= =

<identificador> <expresso | identificador>


ex:
X 4;
X x + 1;
y aula;
teste falso;

xx+2
xx-6
x x/2
x2+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?

214

215

Comando de sada

Comando de entrada
Palavrachave

Nome das variveis


nas quais sero
armazenados o
valores provenientes
do meio de entrada

Palavrachave

Contedo que ser


mostrado atravs de
um meio de sada.

escreva ( <expresso> );

leia (<identificador> [,<identificador> [ ... ] ] );


Captura valores do dispositivo de entrada
especificado (Padro = teclado).
Os dados recebidos so armazenados em
variveis.
Pode conter mensagens.

Envia a expresso para o dispositivo de sada


especificado (Padro = tela).
Expresso pode ser uma combinao de
variveis, constantes e mensagens separadas
por vrgulas.

leia (a)
leia (g, r, b)
leia (Digite seu nome: , nome)

escreva (x)
escreva (Contedo de Y = , y)
escreva(O fatorial de, N, " ", fat);
216

Exerccio

217

Exerccio

6. Foram digitadas informaes sobre


trs alunos. Cada uma delas contm
o nome e a nota de um aluno.

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

Escrever o(s) comando(s) de entrada que


leiam estas informaes e armazene(m) os
valores na memria
Escrever o(s) comando(s) de sada que
mostrem o contedo das posies de
memria da questo anterior.

218

219

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 <= MA
A AA - ANO
R MA - MES
seno
A AA ANO 1
R 6 MES + MA
fim-se
CONT 0
T 12 - MA
enquanto T > 0
CONT CONT + 1
TT-1
fim-enquanto
escreva (Tenho, A , anos e, R, meses)
escreva (Faltam , CONT, meses para as frias)
fim

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;
...<nvel 1>
.......<nvel 2>
Comandos do nvel 2

.......<fim - nvel 2>

...<fim - nvel 1>

220

221

Estrutura Sequencial

Estruturas

Os comandos so executados na ordem


em que aparecem, de cima para baixo.

Estrutura sequencial;
Estrutura condicional;
Estrutura de repetio;

Algoritmo SEQUNCIA;
declare <lista de variveis>;
incio
Os comandos sero
<comando 1>
executados na ordem
<comando 2>
em que aparecem.
...
<comando n>
fim
222

223

Estrutura Sequencial

Exerccios

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

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

Exerccio:
Faa um Teste de Mesa do algoritmo Mdia para 3 alunos.

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.

224

Estrutura de Controle Condicional

225

Desvio condicional simples

Estrutura de Desvio Condicional,


Condio

Controle Condicional,
Deciso ou

Verdadeira

comandos

Falsa

Seleo
Permite a escolha entre blocos de
comandos alternativos.

Se a condio for verdadeira, provocar um


desvio e executar o bloco de comandos.
227

229

Desvio condicional simples


...

Desvio condicional simples


Algoritmo Condicional_Simples;
declare N1, N2, Media : numrico
Inicio

se <condio>
[ento]
<instruo para condio verdadeira>
fim-se
...

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.

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

Desvio condicional composto

Comandos B

Falsa

Condio

Verdadeira

231

Desvio condicional composto


...
se <condio>
[ento ]
<instruo para condio verdadeira>
seno
<instruo para condio falsa>
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...

Comandos A

Se a condio for verdadeira, executar


o bloco de comandos A, caso contrrio,
executar o bloco B. Nunca os dois.

232

233

Desvio condicional composto

Bloco de Comandos

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

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
234

Aninhamento de Estruturas

235

Desvio condicional aninhado


Algoritmo Condicional_Aninhado
declare N1, N2, Media : real
incio
leia( 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

Uma estrutura pode conter outras


estruturas em sua definio.
No h limites para a quantidade de
nveis de aninhamento.

236

237

Exerccios

Exerccios

15. Considerando A=3, B=2, C=5 e D=7,


qual o valor de X?

16. Ler trs valores inteiros e distintos (A, B e C)


e apresentar o maior valor.

a) se no D > C
ento X A + B * D
seno X A - B / C;

17. Dados dois valores reais, apresentar a


diferena do maior pelo menor.

b) se A > 2 e B > 7
ento X A + 2 * B - 2
seno X A + B / C * C + D;

18. Dado um nmero inteiro positivo, informar se


o nmero lido par ou mpar.

c) Se A > 2 ou B > 7
ento X A + 2 * B - 2
seno X A + B / D * C + D;

19. Faa um algoritmo que para calcular as razes


reais de uma funo quadrtica, dados os
valores de a, b e c.
f ( x ) = ax 2 + bx + c

238

Estruturas de Repetio

239

Condio no incio

Permitem a execuo de comandos


repetidas vezes.
Repetio condicional
A repetio acontecer com base em
uma condio.
Condio no incio
Condio no final

condio

Verdadeira

comandos

Falsa

Se a condio for verdadeira, os


comandos sero executados e o processo
reinicia; caso contrrio, a repetio no
acontecer

Repetio com varivel de controle


A repetio ser controlada por uma
varivel (contador)
241

242

Exemplo: Calcular a mdia de vrias notas. A nota = -1


indica que j foram informadas todas as notas (flag).

Interrupo no incio
Sintaxe

leia(Nota)
Total 0
N0
enquanto Nota<>-1
Total Total + Nota
NN+1
leia (Nota)
fim-enquanto
se N > 0
Media Total / N
escreva ( Media )
seno
escreva ( Notas no informadas)
fim-se

enquanto <condio> [faa]


[incio]
<comandos>
fim-enquanto
Exemplo 1
leia (Digite um nmero: , Y)
X0
enquanto X<Y
escreva ( X )
XX+1
fim-enquanto
243

Exerccios

244

Varivel de Controle

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.

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;

25. Implemente um programa que calcula a soma


dos nmeros pares entre dois nmeros lidos
(inclusive).

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.

26. Escrever programa para calcular, para N


(inteiro) lido, o valor de S, dado por
S=

1
2
3
N 1 N
+
+
+
+ ... +
N N 1 N 2
2
1
245

249

Varivel de controle

Varivel de Controle

Sintaxe

Exemplo 1
para X 1 : 10 faa
escreva ( X )
fim-para

para VarControle ValorIni [:Incremento] : ValorFim


[faa]
<comandos>
fim-para

Exemplo 2
z0
para X 1 : 5
leia ( Y )
zz+Y
fim-para
x z/X
Escreva (x)

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.

251

250

Vetores

Exerccios
1.

Construa um algoritmo que receba um valor N inteiro e


positivo, calcule e mostre o fatorial de N (N!).

2.

Construa um algoritmo que leia a altura dos alunos em


centmetros. Encontre e mostre o nmero e a altura do
aluno mais baixo e do aluno mais alto.

3.

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

4.

Um determinado material radioativo perde a metade de


sua massa a cada 50 segundos. Informada a massa
inicial em gramas, fazer um algoritmo que determine o
tempo necessrio para que essa massa se torne menor
que 0,5 gramas. Escreva a massa inicial, a massa final e
o tempo calculado.

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
0

Nome:

Declarao

declare nome[tamanho] : tipo


253

254

Vetores

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

Representao
declare v[8] : inteiro
2
3
4
5 6
7
8
elemento 1
varivel V[1] V[2] V[3] V[4] V[5] V[6] V[7] V[8]
valor

56

30

50

17

87

255

Exemplo - Calcular a mdia geral de uma


turma de 10 alunos.

256

Exemplo - Calcular a mdia geral de uma


turma de 10 alunos.

Algoritmo M10
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
257

Algoritmo M10
declare I : inteiro;
declare 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

258

Matrizes

Matrizes

Varivel composta homogenia bidimensional


formada por uma sequncia de variveis do
mesmo tipo, com o mesmo identificador e
alocadas sequencialmente na memria.
As variveis so distinguidas por ndices
As variveis so compostas por linhas e colunas

Representao
declare m[4,4] : inteiro
1

coluna
1

v[1,1] v[1,2] v[1,3] v[1,4]

v[2,1] V[2,2] V[2,3] V[2,4]

...

1
linha

coluna

linha

2
...

varivel
Declarao
declare nome[linha, coluna] : tipo

V[4,1] V[4,2] V[4,3]V[4,4]

varivel
259

Exemplo

260

Exerccios

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

1.

Faa um algoritmo que exiba uma tabuada com as


operaes aritmticas.

2.

Um teatro com 28 filas de 32 poltronas em cada fila


faz o controle de reservas de uma apresentao
atravs de uma matriz. As poltronas ocupadas so
assinaladas na matriz de forma a diferenci-las das
desocupadas. Antes de comear a venda de cada
seo todas as posies so inicializadas. As
poltronas 8 a 16 das filas 3 e 4 so reservadas para
os patrocinadores, portanto no podem ser vendidas.
Faa um algoritmo para:
a) Reservar poltronas para a seo.
b) Ao final das reservas informe quantas poltronas
esto livres e quantas esto ocupadas e e mostre
imprima o mapa de ocupao das poltronas.
263

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

Do It Right
Think
Herman Hollerith
Fundador da IBM

LDA 11A810A0
C=A+B

LDB 22345A91
ADD A,B
STA 1234FE88

264

Exemplo 1: Asembly

265

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

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
266

267

Introduo ao Scilab

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

Parte 2
268

269

scripts

Programando com o Scilab

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

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.

270

271

Programa da mdia

Gravando (salvando) o programa

Clc limpa
a tela

// indica que o restante da linha um comentrio


clear limpa a memria
Dilogo com o usurio

272

Gravando (salvando) o programa

273

Executando o programa
Executar.
.

274

media

275

Funes de entrada - input

Funo de entrada x_dialog

input( )
possibilita a interao entre o usurio e o programa

Janela interativa:
Var = evstr(x_dialog (rtulos, valor_inicial))

Exemplo:
Receber um dado numrico
nu = input( Digite um numero qualquer: )
varivel

comando de
atribuio

solicita ao usurio que


fornea algum dado de
entrada

evstr(x_dialog (msg)) permite que o usurio


digite o(s) dado(s) de entrada sem alterar o
programa, atravs de uma janela. O dado
literal (string) deve ser digitado entre aspas.

string

Receber um dado texto


tx = input( Digite a resposta: ,s )
276

277

Funo de entrada x_dialog

Funo de entrada messagebox

Janela interativa:
Var = evstr(x_dialog (rtulos, valor_inicial))

Caixa de entrada:
Var = messagebox(msg, modal, question,
botes)

x=evstr(x_dialog("Digite seu nome entre


aspas e clique Ok", ""));

Este comando permite que o usurio escolha


em uma lista, o dado de entrada sem alterar
o programa, atravs de uma janela. Neste
caso, a varivel assume o valor que
representa a ordem do boto escolhido.

y=evstr(x_dialog("Digite seu peso e clique


Ok", ""));
z=evstr(x_dialog("Digite seu peso, sua idade
e sua altura separados por vrgula e clique
Ok", ""));
278

279

Funes de Sada - printf

Funo de entrada messagebox

printf (formato, dado)

Caixa de entrada:
Var = messagebox(msg, modal, question,
botes)

exibe valores e texto e permite a formatao


Formatao

%d , %i ou %g
%f ou %x.yf ou %g

c=messagebox("Qual o seu curso?",


"modal", "question", ["Engenharia Civil",
"Engenharia Qumica", "Engenharia
Ambiental" ]);
w=messagebox("Qual a sua faixa etria?",
"modal", "question", ["11-20", "21-30", "3140", "41-50", "51-60", "61-70", "71-80",
"81-90", "Mais de 100" ]);

%s

Exibe

Valor inteiro
Valor em ponto flutuante
Valor de um literal

Exemplo:

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)
\n -Muda de linha
280

Funes de Sada - disp

281

Comando de Sada messagebox

disp(varivel) ou disp(texto)
Exibe na tela o valor da varivel ou string no
formato definido pelo usurio

messagebox(msprintf(gettext(texto), digitar
as variveis separada por vrgula), digitar o
nome da janela entre aspas)
A formatao do msprintf a mesma do printf.

Exemplo:
disp(Media Geral )
i=4
disp(i)
nome = "maria";
disp ("Seu nome " + nome)
v=10
disp ("A velocidade final " + string(v))

Exemplo:
messagebox(msprintf(gettext("Nome: %s
\nEndereo: %s \n CPF: %d \n Peso: %3.2f Kg
\n Altura: %1.2f m \n Idade: %d anos"),
n,e,cpf,z(1),z(3),z(2)),"Cadastro");

282

283

Exemplo

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)

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

Exemplo

285

Mdia...

// Interface
clear clc
n=evstr(x_dialog("Digite seu nome entre aspas e clique Ok", ""));
e=evstr(x_dialog("Digite seu endereo entre aspas e clique Ok", ""));
cpf=evstr(x_dialog("Digite seu cpf e clique Ok", ""));
z=evstr(x_dialog("Digite seu peso, sua idade e sua altura separados
por vrgula e clique Ok", ""));
c=messagebox("Qual o seu curso?", "modal", "question",
["Engenharia Civil", "Engenharia Qumica", "Engenharia Ambiental"
]);
w=messagebox("Qual a sua faixa etria?", "modal", "question",
["11-20", "21-40", "41-60", "Mais de 60" ]);
messagebox(msprintf(gettext("Nome: %s \nEndereo: %s \n CPF:
%d \n Peso: %3.2f Kg \n Altura: %1.2f m \n Idade: %d anos"),
n,e,cpf,z(1),z(3),z(2)),"Cadastro");
286

Quem est aprovado?

287

Operadores Lgicos

Comandos de controle de fluxo - if


if condio
comandos;
end

if condio
comandos1;
else
comandos
end

Operador

if condio1
comandos1;
else
if condio2
comandos2;
else
comandos3;
end
end

Descrio

&

ou

no

Tabela Verdade dos operadores &, | e ~


A

A&B

A|B

~A

~B

288

Operaes lgicas

289

Exemplo do comando if
// Clculo da Mdia

-->v = %t, f = %f
v =
T
f =
F
-->~v
ans =
F

-->v | f
ans =
T

// Autor: Gilka

-->v & f
ans =
F

m = (n1 * 2 + n2 * 3)/5;

clear, clc
nome = input("Nome = ", "s");
n1 = input("Nota 1 = ");
n2 = input("Nota 2 = ");
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)

-->a = 7; b = 8; x = a > b
x =
F

else
printf("\n %s Reprovado - Mdia %.1f", nome, m)
end
end
290

291

Mdia...

Execuo do programa

E se a nota estiver errada?


.....15, por exemplo

292

293

O que faz?
// Programa exerccio : O que faz?

Comandos de controle de fluxo - while

Formato:
while condio
comandos;
end

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

295

Exemplo do comando while

Exemplo do comando while

// Clculo da Mdia

m = (n1 * 2 + n2 * 3)/5;

// Autor: Gilka

if m >= 7 then

clear, clc

printf("\n %s Aprovado - Mdia %.1f", nome, m)

nome = input("Nome = ", "s");

else

n1 = input("Nota 1 = ");

if m >= 3 then

while n1 < 0 | n1 > 10 then

printf("\n %s Final - Mdia %.1f", nome, m)

printf("\n Nota 1 Invlida %.1f",n1)

else

n1 = input("Nota 1 = ");

printf("\n %s Reprovado - Mdia %.1f", nome, m)


end

end
end

n2 = input("Nota 2 = ");
while n2 < 0 | n2 > 10 then
printf("\n Nota 1 Invlida %.1f",n1)
n2 = input("Nota 1 = ");
end
296

297

Calculando a mdia geral...

Mdia...

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

E se houver mais de um aluno?

298

299

Calculando a mdia geral...

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;

if media >= 7 then


result = "Aprovado";
else
if media < 3 then
result = "Reprovado";
else
result = "em Final";
end
end

300

Calculando a mdia geral...

301

Para pensar...

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)

302

Quando terminam esses comandos?


1)

n = 4;
while n <= 4
printf ("\n x = %g", n);
n = n 1;
end

2)

n = 1;
while n <= 4
printf ("\n x = %g", n);
end
303

Exemplo

Comandos de controle de fluxo - for

Ler um conjunto de valores inteiros e positivos,


ao final, digitar -1, e determine o maior valor
deste entre os nmeros lidos.

Formato:
for var = inicio : fim
comandos;
end

for var = inicio : passo : fim


comandos;
end
304

305

Exemplo do comando for

Exemplo do comando for

for i = 1:4
printf ("\n x = %g", n);
end

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

for i = 4: -1 :1
printf ("\n x = %g", n);
end

306

307

Exemplo

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)

Elaborar um programa para escrever a tabuada


de multiplicar 1 at 10.

308

309

Exerccios faa programas para:

Exerccios

1. Dado o raio de uma circunferncia, calcular sua


rea e seu permetro

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

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.

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.

4. Dada a temperatura de um corpo, em graus


Fahrenheit, calcular e exibir o valor da referida
temperatura em graus Celsius e em Kelvin.

8. Dado um nmero inteiro positivo, informar se


o nmero lido par ou mpar.
310

311

Exerccios

Exerccios

9. Calcular as razes reais de uma funo


quadrtica, dados os valores de a, b e c.

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.

f ( x ) = ax 2 + bx + 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.

15. Implemente um programa que calcula a soma


dos nmeros pares entre dois nmeros lidos
(inclusive).

11. Receba cinco grupos de 2 nmeros e mostre a


soma destes nmeros;

16. Escrever programa para calcular, para N


(inteiro) lido, o valor de S, dado por

12. Receba dois nmeros e mostre o maior deles;

S=

13. Receba trs nmeros e mostre-os em ordem


crescente.

1
2
3
N 1 N
+
+
+ ... +
+
2
1
N N 1 N 2

312

313

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.

Do It Right
Think

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

Herman Hollerith
Fundador da IBM

20.Leia o nmero de termos e um valor positivo para x,


calcule e mostre o valor da srie:

s =

x2 x3 x4 x5 x6 x7
+ + + ...
1! 2! 3! 4! 5! 6!
314

315