of 126 /126

download (.rar)

Embed Size (px)

Text of download (.rar)

  • NDICE

    1. Introduo / Scilab / Estruturao

    2. Variveis / Operadores / Comando Condicional

    3. Comandos de Controle de Fluxo (Condicional / Repetio / Parada /

    Continuao)

    4. Funes / Recursividade / Biblioteca

    5. Vetor e Matriz

    6. Strings / Janelas de Dilogo

    7. Arquivos

    8. Tipos de dados determinados pelo usurio (listas / estruturas)

    9. Limites e Derivadas

    10. Grficos

  • 2016/2

    Prof. Afonso P. Santos 1

    Universidade Federal de ViosaCurso de Engenharia de Agrimensura e Cartogrfica

    EAM 480

    Programao aplicada a Eng. de Agrimensura e Cartogrfica

    AULA 01

    Prof. Afonso P. Santos

    [email protected]: 3899-3029

    Sumrio

    Apresentao da Disciplina

    Termos utilizados em programao

    Scilab

    Estrutura de um programa Funes

    Palavras Reservadas

    Variveis

    Entrada e sada de dados

    Comando de Pausa

    Exemplo

    Exerccios

  • 2016/2

    Prof. Afonso P. Santos 2

    EAM 480

    Objetivos e Ementa

    A disciplina objetiva oferecer ao aluno o conhecimento aplicado programao de computadores na rea de Engenharia de Agrimensura eCartogrfica.

    Sero apresentados os fundamentos e estrutura da linguagem, variveis,constantes, operadores e expresses. Comandos de controle de fluxo.Conceitos de matrizes e vetores. Uso de ponteiros e funes . Comandosde entrada e sada pelo console ou por arquivos. Tipos de dados definidospelo usurio. Ferramentas, bibliotecas e extenses.

    Ao final do curso, o aluno dever ser capaz de utilizar com proficincia alinguagem de programao do Scilab/Matlab para implementar algoritmosda rea.

    EAM 480

    Plano de Aulas, Critrios de Avaliao e Referncias Bibliogrficas.

    Disponvel no PVANET

  • 2016/2

    Prof. Afonso P. Santos 3

    EAM 480

    Softwares utilizados

    Scilab

    Comeou a ser desenvolvido na dcada de 1990 por pesquisadores doINRIA (Institut National de Recherche en Informatique et en Automatique)e do ENPC (cole Nationale des Ponts et Chausses) na Frana. O Scilab agora mantido e desenvolvido pelo Scilab Enterprises desde 2010.

    Disponvel gratuitamente em: www.scilab.org

    Alguns Termos

  • 2016/2

    Prof. Afonso P. Santos 4

    Termos

    Definio de termos

    Cdigo-fonte: o texto ou conjunto de palavras, em uma determinadalinguagem, escrita de forma ordenada e contendo instrues de formalgica.

    Compilador: realiza a leitura do cdigo-fonte como um todo traduzindoem cdigo-objeto.

    Interpretador: realiza a leitura do cdigo-fonte linha por linha,executando a instruo de cada linha por vez. Quando se utiliza de uminterpretador, toda vez em que for executar o programa necessrio autilizao do interpretador. Exemplos: Linguagens em Scilab, Matlab,BASIC, VB, PHP, LISP, Javascript, entre outras.

    Termos

    Definio de termos

    Cdigo objeto: o nome dado ao cdigo resultante do processo decompilao. uma forma intermediria similar a linguagem de mquinado computador. Apesar de estar representado em binrio, no executvel diretamente pelo processador, pois normalmente, o cdigo-objeto referencia partes de programa que no esto necessariamentedefinidas no mesmo arquivo que o gerou, por exemplo, arquivos debibliotecas de sub-rotinas.

    Cdigo de mquina: so um conjunto de instrues que o computadorentende para execut-las. Essas instrues so representadas porsequncias de bits, chamadas de cdigo binrio j que so formados por0 e 1.

  • 2016/2

    Prof. Afonso P. Santos 5

    Termos

    Definio de termos

    Linkeditor: tambm chamado de Ligao um programa que une oscdigos-objeto que foram compilados separadamente gerando umprograma executvel. A linkedio nada mais que a unio debibliotecas utilizadas com o cdigo escrito por um programador,gerando assim um nico mdulo, denominado de programa executvel.

    Biblioteca: Arquivos contendo funes que podem ser acopladas /utilizadas no seu programa.

    Tempo de compilao: So os eventos que ocorrem enquanto seuprograma est sendo compilado. Um exemplo de eventos so erros desintaxe (regra da linguagem de programao)

    Tempo de execuo: So os eventos que ocorrem enquanto seuprograma est sendo executado.

    Termos

    Definio de termos

    Editor: o programa onde o cdigo-fonte escrito.

    Debugger: auxilia o programador a eliminar, ou reduzir, a quantidade deerros de execuo no programa. Possibilita a execuo passo-a-passo departes do programa, visualizao de valores das variveis, visualizaodos contedos dos registros internos do processador, alterao emtempo de execuo de contedos de memria, de variveis ou deinstrues, entre outros pontos.

    IDE (Ambiente de Desenvolvimento Integrado): um programa decomputador que rene caractersticas e ferramentas de apoio aodesenvolvimento de software com o objetivo de agilizar este processo.

  • 2016/2

    Prof. Afonso P. Santos 6

    Scilab

    Scilab

    Scilab um software para computao numrica, semelhante aoMatlab, que fornece um ambiente computacional robusto e gratuito.

    Algoritmos complexos podem ser criados em poucas linhas de cdigo,em comparao com outras linguagens como C, Python, Fortran, ouC++, j que possui centenas de funes matemticas/estatsticas.

    Possui sofisticadas estruturas de dados, incluindo listas, polinmios,sistemas lineares, etc.;

    Possui ferramentas para gerao de grficos 2D e 3D, simulaes eotimizaes;

    Bastante difundida e utilizada profissionalmente e cientificamente nasEngenharias;

  • 2016/2

    Prof. Afonso P. Santos 7

    Scilab

    Console: Tela principal do Scilab

    ConsoleJanela de Comandos

    Histrico de Comandos

    Navegador de Variveis

    Navegador de Arquivo

    Scilab

    SciNotes: um editor para os cdigos-fonte que ser interpretado pelo Scilabe exibidos na janela de console. Os arquivos so salvos na extenso .sce

  • 2016/2

    Prof. Afonso P. Santos 8

    Scilab

    Ajuda: possui todos os comandos e funes do Scilab, bem como trechos decdigos explicando seu funcionamento.

    A linguagem do Scilab

  • 2016/2

    Prof. Afonso P. Santos 9

    A linguagem do Scilab

    Linguagem baseada na linguagem C;

    Scilab uma linguagem de programao de alto nvel, orientada anlise numrica.

    Possui uma linguagem estruturada e modular;

    O Scilab detm uma linguagem que interpretada e nocompilada;

    O Scilab case sensitive, ou seja, h uma diferenciao entreletras maisculas e minsculas.

    Como em linguagens C/C++ o Scilab possui operadores lgicos,aritmticos e relacionais, comandos de controle de fluxo comorepeties e condicionais, manipulao com arquivos, matrizes etextos...

    A linguagem do Scilab

    Nvel de

    Linguagem

    Linguagem de

    Programao

    Alto(similar linguagem humana)

    PascalCOBOL

    FORTRANBASICScilab

    MdioC++

    CJava

    Baixo(similar

    linguagem de mquina)

    Assembler

    Linguagem

    No-Estruturada

    Linguagem

    Estruturada

    COBOLFORTRAN

    BASIC

    PascalC++

    CScilab

    Matlab

  • 2016/2

    Prof. Afonso P. Santos 10

    Estrutura de um programa em C

    de conhecimento que a estrutura de um programa em C/C++ seguebasicamente a seguinte ordem:

    Declaraes de bibliotecas (#include | #include);

    Definio de constantes (#define pi 3.1415);

    Definio de tipos de dados (Struct)

    Declarao de variveis globais;

    Funes

    Funo Principal (main)

    Estrutura de um programa Scilab

    O Scilab no tem uma estruturao especfica, mas no nosso curso iremosutilizar a seguinte estrutura:

    Chamadas de Funes externas (exec(nome_arquivo_funo));

    Definio de constantes

    Definio de tipos de dados (Struct )

    Funes

    Cdigo Principal

  • 2016/2

    Prof. Afonso P. Santos 11

    Estrutura de um programa Scilab

    Escreva um programa que receba o ngulo em graus decimais e apresente na tela em radianos.

    Algoritmo:

    Ler o ngulo em graus decimais Converter o ngulo em radianos

    RAD = ang*PI/180.0 Escrever o resultado em tela

    Estrutura de um programa Scilab

    Diferentemente das linguagens C/C++, no Scilab no necessrio adeclarao de bibliotecas, nem a presena de uma funo principal;

    As funes clear e clc so bastantes utilizadas na programao noScilab. Nesta disciplina seu uso ser obrigatrio em todos osprogramas desenvolvido:

    clear: limpa a memria do Scilab, destruindo todas as variveiscriadas anteriormente;

    clc: limpa a tela do console, apagando registros antigos;

  • 2016/2

    Prof. Afonso P. Santos 12

    Variveis

    Varivel uma posio nomeada de memria, que tem como funo

    armazenar um valor (que pode ser modificado pelo programa) de acordo

    com o tipo pr-definido;

    O nome de uma varivel chamado de identificador .

    Os identificadores tem que iniciar com uma letra (a a z) ou com oscaracteres: %, _ , # , ! , $ e ?. O restante do nome pode conter letras enmeros apenas. Recomenda-se para o tamanho mximo para umidentificador o uso de 20 posies (caracteres);

    No aceito o uso de acentuaes nos identificadores de variveis;

    Uma varivel pode ser dividido em Local e Global.

    Variveis

    Variveis Locais Tambm chamadas de variveis dinmicas ou automticas; So declaradas dentro de uma funo; So visualizadas apenas dentro da funo onde foram declaradas; So criadas em tempo de execuo quando a funo chamada; destruda aps o final da execuo da funo, portanto no

    apresentada no navegador de variveis do Scilab; Sobrepem uma varivel global de mesmo nome dentro da funo;

    function [sada] = nome(ent1, ent2)i = 1;b = 2.1;

    endfunction;

  • 2016/2

    Prof. Afonso P. Santos 13

    Variveis

    Variveis Globais

    declarada fora do corpo de qualquer funo;

    Podem serem utilizadas em qualquer funo do cdigo fonte;

    So alocadas em tempo de interpretao/execuo e ocupam a memriadurante toda a execuo do Scilab. Portanto, deve-se evitar o uso abusivo devariveis globais ou utilizar o comando Clear para limpar a memria;

    Para uma melhor organizao, sugere-se declarar todas as variveis globaisno incio do cdigo-fonte;

    i = 2;function [sada] = nome(ent1, ent2)

    a = b + i;endfunction;

    Tipo de dados

    Diferentemente de linguagens C/C++, no Scilab no preciso declarar o tipo que uma varivel ir ter;

    Uma varivel pode armazenar diferentes tipos de caracteres e nmeros:

    Tipo Descrio Faixa de Valores Bytes

    char Caractere. Geralmente so armazenados em cdigos ASCII

    -128 a 127 1

    int Nmero inteiro -32767 a 32767 2

    float Nmero Real (Ponto Flutuante) 3.4e-38 a 3.4e+38 4

    double Nmero Real (Ponto Flutuante com preciso dupla) 1.7e-308 a 1.7e+308 8

    void serve para indicar que um resultado no tem um tipo definido

    unsigned int Nmeros inteiros positivos 0 a 65535 4

    long int Nmeros inteiros longos -2147483648 a 2147483648 8

    A faixa de valores dos tipos de dados podem variar de acordo com o compilador/interpretador.

    Tipo de variveis utilizados na linguagem C/C++

  • 2016/2

    Prof. Afonso P. Santos 14

    Tipo de dados

    Diferentemente de linguagens C/C++, no Scilab no preciso declarar o tipo que uma varivel ir ter;

    Conversor /

    EspecificadorSada

    %d Nmeros inteiros

    %f Nmeros Reais (ponto flutuante)

    %e Exponencial

    %g Menor formato possvel

    %c Caractere

    %s String ou Texto (Conjunto ou vetores de caracteres)

    Especificadores ou conversores de tipos utilizados principalmente nos comandos de sada:

    Tabela ASCII

  • 2016/2

    Prof. Afonso P. Santos 15

    Funes

    A palavra reservada que indica o incio da declarao de uma funo function. A palavra endfunction indica o trmino de uma funo;

    O corpo de uma funo delimitado apenas pela palavras function eendfunction, no sendo necessrio qualquer tipo de caractere;

    A identificao (nome) das funes segue a mesma regra dos identificadoresdas variveis.

    function [saida1, saida2,...] = nome_funcao (ent1, ent2, ...)declaraes de variveis locais;bloco de comandos;

    endfunction

    Funes

    Aps o nome da funo, abre-se parntesis e declara a lista de parmetrosutilizadas no corpo da funo;

    A lista de parmetros so variveis que iro receber os valores de outrasvariveis declaradas previamente no cdigo principal do programa;

    A variveis que sero apresentadas como resultado daaplicao da funo devero ser delimitadas por colchetes([ ])e separadas entre si por vrgulas.

    Pode-se ter mais de uma varivel como sada de umadeterminada funo

  • 2016/2

    Prof. Afonso P. Santos 16

    Entrada e Sada de dados

    A entrada e sada de dados realizada, principalmente, pelos comandos:

    printf() utilizado quando se quer escrever algo na tela do computador(Sada);

    input() utilizado quando se quer obter dados a partir do teclado (Entrada);

    sintaxe:

    printf (formatacao, arg1, arg2, ...)

    formatacao - uma cadeia de caracterescontendo textos e formataes que seroutilizados para apresentar os resultados devariveis, expresses, etc. delimitada poraspas duplas.arg1 a expresso ou varivel que terseu valor mostrado na tela.

    sintaxe:

    variavel = input (formatacao)

    formatacao - uma cadeia de caracterescontendo formataes que sero utilizadaspara informar ao usurio o tipo de dadosque ele dever digitar no teclado .variavel a varivel que receber osdados lidos.

    Entrada e Sada de dados

    Note que no h nenhuma varivel aser mostrada em tela. O comandoapenas escreve um texto em tela. Hs uso da formatao.

    A formatao %d, um conversor de tipo de dados. O %d converte o caractere emnmero e vice-versa.O conversor/especificador de tipo serve como uma janela para que variveispossam ser apresentadas junto formatao do comando de sada (printf,mprintf, disp).

    O comando input l os dados digitadosvia teclado e atribui varivel idade;A formatao existente no comandoinput serve para informar ao usurio oque se deve digitar ao teclado;

  • 2016/2

    Prof. Afonso P. Santos 17

    Entrada e Sada de dados

    Caracteres especiais (a serem utilizados na formatao do comando printf)

    Caractere Descrio

    \b retrocesso

    \f Nova pgina

    \n Nova linha

    \t tabulao

    \ apstrofo

    %% Porcentagem

    \\ Barra invertida

    Entrada e Sada de dados

    Formatando a sada dos dados:

  • 2016/2

    Prof. Afonso P. Santos 18

    Exemplos

    Uso de Funes e variveis multiplicar nmeros

    Exerccio

    1) Dados os valores mximos (max) e mnimos (min) de um intervalo [max,min], escrever um programa em C para re-escalonar valores (Vo), nesseintervalo [max, min] para o intervalo entre [0,1]; onde,

    2) Escrever um programa para converter distncias obtidas num documentocartogrfico em milhas para quilmetros, sendo que 1 milha igual a1.60934 quilmetros;

    3) Escrever um programa para calcular a mdia do ngulo zenital coletadoem pontaria direta (PD) e indireta (PI). Os dados de entrada devem ser ongulo zenital (PD e PI)

    A frmula para o clculo : Z mdio = (360 + PD PI)/2

    minmax

    min

    =

    o

    E

    VV

  • 2016/2

    Prof. Afonso P. Santos 19

    Exerccio

    4) Escrever um programa para o clculo da rea de um polgono obtidoatravs de imagem raster. O programa deve solicitar o n de clulas (pixel) dopolgono e a resoluo espacial (comprimento do pixel) da imagem (considereo pixel sendo quadrado) e retornar a rea do polgono.

    5) Escrever um programa para obter a declividade (D) de um terreno, atravsdo ngulo de inclinao (i).

    A frmula para o clculo : D = 100* tg(i);

    6) Escrever um programa para obter a declividade (D) de um terreno, atravsda diferena de altitude (Dn) e da distancia horizontal (Dh) entre dois pontos.A frmula para o clculo : D = (Dn/Dh)*100;

    Exerccio

    7) Escrever um programa para converter ngulo vertical de inclinao (i) emngulo zenital (Z). A frmula para o clculo : Z = 90 i

    8) Faa um programa para que o usurio entre com uma distncia medida emum mapa e sua medida homologa no terreno. Calcule o denominador daescala correspondente.

    9) Faa um programa para converter graus decimais em graus, minutos esegundos;

    10) Faa um programa que calcule o efeito da curvatura terrestre (S) naaltimetria para uma dada distncia na superfcie esfrica (S).

    Frmula: S = S/R ; onde R o raio terrestre.

  • 2016/2

    Prof. Afonso P. Santos 1

    Universidade Federal de Viosa

    Curso de Engenharia de Agrimensura e Cartogrfica

    EAM 480

    Programao aplicada a Eng. de Agrimensura e Cartogrfica

    AULA 02

    Prof. Afonso P. Santos

    [email protected]: 3899-3029

    Sumrio

    Variveis

    Operadores

    Comando condicional IF

    Exerccios

  • 2016/2

    Prof. Afonso P. Santos 2

    Variveis

    Varivel uma posio nomeada de memria, que tem como funo

    armazenar um valor (que pode ser modificado pelo programa) de acordo com

    o tipo pr-definido.

    Regras Gerais:

    O nome de uma varivel chamado de identificador .

    Os identificadores tem que iniciar com uma letra (a a z) ou com os

    caracteres: %, _ , # , ! , $ e ?. O restante do nome pode conter letras e

    nmeros apenas. Recomenda-se para o tamanho mximo para um

    identificador o uso de 20 posies (caracteres);

    No aceito o uso de acentuaes nos identificadores de variveis;

    Variveis

    Regras Gerais

    As variveis tipo caractere e texto devero receber valores entre

    aspas simples ();

    Tipo Booleano: o Scilab utiliza as constantes %t ou %T para

    verdadeiro e %f ou %F para falso;

  • 2016/2

    Prof. Afonso P. Santos 3

    Tipo de dados

    Diferentemente de linguagens C/C++, no Scilab no preciso declarar o tipo

    que uma varivel ir ter;

    Conversor /

    EspecificadorSada

    %d Nmeros inteiros

    %f Nmeros Reais (ponto flutuante)

    %e Exponencial

    %g Menor formato possvel

    %c Caractere

    %s String ou Texto (Conjunto ou vetores de caracteres)

    Especificadores ou conversores de tipos utilizados principalmente nos comandos de sada:

    Expresses e Operadores

    Segundo Arajo e Hoffmann (2006), expresso um conjunto de variveis,

    constantes e operadores que resultam em um valor.

    Os operadores podem ser classificados quanto:

    ao numero de operandos sobre os quais este atua:

    Unrio: trabalha apenas com um operando;

    Binrio: trabalha com dois operandos;

    Ternrio: trabalha com trs operandos;

    ao tipo de dado de seus operandos e ao valor resultante:

    Aritmticos;

    Lgicos;

    Relacionais;

    Literais;

  • 2016/2

    Prof. Afonso P. Santos 4

    Operadores Matemticos

    Operador

    Aritmtico

    Tipo Operao Exemplo

    = ---- Atribuio: insere o resultado da expresso queest a direita do operador na rea de memria da

    varivel que est a esquerda do operador.

    X =10;

    X=Y=Z=20;

    C=A;

    - unrio Inverso de sinal -a

    + unrio Manuteno do sinal +b

    * binrio Multiplicao a = b * c;

    / binrio Diviso a = b / c;

    + binrio Soma a = b + c;

    - binrio Subtrao a = b - c;

    ^ binrio Potncia a = b ^ c;

    sqrt() - Raiz Quadrada a = sqrt(b)

    exp() - Exponencial [a = eb] a = exp(b)

    Operadores Matemticos

    Operador diviso / Pode-se utilizar em nmeros inteiros ou flutuantes;

    No importa se um nmero inteiro, o resultado sempre ser

    um ponto flutuante. Ex: 5/2 = 2.5

    resto de diviso

    Utiliza-se o comando modulo(i, j) para devolver o resto da diviso entre os operadores i e j;

  • 2016/2

    Prof. Afonso P. Santos 5

    Exemplo

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 6

    Operadores Relacionais

    Operador

    Relacional

    Descrio Tipo Exemplo

    > Maior que Binrio a > b

    >= Maior que ou igual a Binrio a >= b

    < Menor que Binrio a < b

  • 2016/2

    Prof. Afonso P. Santos 7

    Exemplo

    Funes Trigonomtricas

    No necessrio declarar quaisquer tipos de bibliotecas!

    Operaes que envolve ngulos quase sempre utilizam dados de entrada

    em radianos!

    sin() retorna o seno de um ngulo.

    cos() retorna o cosseno de um ngulo.

    tan() retorna a tangente de um ngulo

    sec() retorna a secante de um ngulo

    csc() retorna a cossecante de um ngulo

    cotg() retorna a cotangente de um ngulo

    asin() retorna o arco-seno de um ngulo.

    acos() retorna o arco-cosseno de um ngulo.

    atan() retorna o arco-tangente de um ngulo.

    Entrada com dados

    em Radianos

  • 2016/2

    Prof. Afonso P. Santos 8

    Funes Trigonomtricas

    No necessrio declarar quaisquer tipos de bibliotecas!

    Operaes que envolve ngulos utilizam dados de entrada em radianos!

    sind() retorna o seno de um ngulo dado em graus.

    cosd() retorna o cosseno de um ngulo dado em graus.

    tand() retorna a tangente de um ngulo dado em graus.

    asind() retorna o arco-seno com o resultado em graus.

    acosd() retorna o arco-cosseno com o resultado em graus.

    atand() retorna o arco-tangente com o resultado em graus.

    Entrada dos

    dados em Graus

    Sada dos

    Resultados

    em Graus

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 9

    Exemplo

    Operaes com variveis de diferentes tipos

    Como no se declara o tipo da varivel no Scilab, uma determinada

    varivel que se inicia como nmero inteiro, pode-se posteriormente

    receber valores flutuantes ou textuais veja a varvel X;

  • 2016/2

    Prof. Afonso P. Santos 10

    Operaes com variveis de diferentes tipos

    O especificador/conversor de tipo define como o resultado ser apresentado.

    Na linha 7 e 9 uma diviso de nmero real e inteiro (ou vice-versa) resulta em

    uma nmero real utilizando o especificador %f.

    Na linha 8 e 10 uma diviso de nmero real e inteiro (ou vice-versa) resulta em

    uma nmero inteiro utilizando o especificador %d.

    Prioridades Operadores

    Maior Prioridade

    Menor Prioridade

    1. ~ (no - lgico)

    2. ^ (potncia)

    3. * / (multiplicao e diviso)

    4. + - (soma e subtrao)

    5. < = > == ~= (relacionais)

    6. & | (e ou lgicos)

    A ordem de prioridade

    pode ser alterada pelo

    uso do parnteses

  • 2016/2

    Prof. Afonso P. Santos 11

    Exemplo

    Obtenha o valor de Graus, Minutos e Segundos correspondente ao formato

    GGG.MMSS

    Comandos de Controle de Fluxo

  • 2016/2

    Prof. Afonso P. Santos 12

    Comandos de Controle de Fluxo

    Os comandos de controle de fluxo so a essncia de qualquer linguagem,

    porque governam o fluxo da execuo do programa.

    So poderosos e ajudam a explicar a popularidade da linguagem.

    Os comandos de Controle de Fluxo divididos em trs categorias:

    Comandos condicionais (de deciso) IF - SELECT

    Comandos de repeties (loop ou laos) WHILE - FOR

    Comandos de Interrupes e Continuao CONTINUE BREAK QUIT

    ABORT PAUSE

    sintaxe:

    if (condio) then

    bloco de comandos se a condio for verdadeira

    else

    bloco de comandos se a condio for falsa

    end

    Comando IF

    O comando IF instrui o computador a tomar uma deciso simples;

    Se a condio do comando if for verdadeiro, o computador executar o

    comando ou o bloco;

    Se for falso, e se a clusula else existir, o computador executar o comando ou o

    bloco definido;

  • 2016/2

    Prof. Afonso P. Santos 13

    Comando IF

    Exemplo simples:

    Exemplo:if(i==1)then

    comando 1;

    elseif(i>1 & i3 & i

  • 2016/2

    Prof. Afonso P. Santos 14

    Exemplos

    Programa para calcular o Azimute de um alinhamento definido por dois

    pontos: Necessrio ter as coordenadas planimtricas de dois pontos (X1,Y1 e X2,Y2);

    Iniciar o clculo do azimute pelo frmula do arco-tangente;

    Realizar a anlise de quadrantes e realizar a correo do azimute;

    Apresentar o resultado do azimute do alinhamento;

    Resultado de sada em graus

    correspondente ao intervalo -90 a +90

    Se dX>=0 e dy

  • 2016/2

    Prof. Afonso P. Santos 15

    Exemplos

    Calculando o Azimute com a funo atan utilizando dois parmetros:

    , Resultado de sada em graus

    correspondente ao intervalo -180 a +180

    Se Az

  • 2016/2

    Prof. Afonso P. Santos 16

    Exerccio

    1) Escrever um programa para calcular as reas de figuras planas: quadrado

    (lado), retngulo (2 lados), crculo (raio), tringulo (base e altura), trapzio (2

    bases e altura) e paralelogramo (base e altura).

    2) No Brasil empregou-se oficialmente, num passado recente, as seguintes

    unidades lineares:

    1 lgua = 6 600 m

    1 lgua martima = 5 555,55 m

    1 quadra = 132 m

    1 corda = 33 m

    1 braa = 2,20 m

    1 vara = 1,10 m

    1 palmos = 0,22 m

    Escreva um programa para que cada uma destas unidades seja

    convertidas em metros

    Exerccio

    3) Escrever um programa em que o usurio entre com o valor de um azimute.

    O programa ter que analisar qual quadrante o azimute se encontra e

    transformar azimute em rumo:

    1. Quadrante (NE) RUMO = AZ

    2. Quadrante (SE) RUMO = 180 - AZ

    3. Quadrante (SW) RUMO = AZ 180

    4. Quadrante (NW) RUMO = 360 - AZ

    4) Escrever um programa para converter ngulo de inclinao (AI) em ngulo

    zenital (Z). O ngulo de Inclinao deve obedecer ao formato: ggg.mmss

    (graus.minutos_segundos). O resultado dever ser dado em graus decimais.

    A frmula para o clculo : Z = 90 AI

  • 2016/2

    Prof. Afonso P. Santos 17

    Exerccio

    5) Escrever um programa para obter a declividade (D) de um terreno, atravs

    do ngulo de inclinao (i) ou atravs da diferena de altitude (Dn) e da

    distancia horizontal (Dh) entre dois pontos. Faa um Menu de opes. O

    ngulo de inclinao em graus deve obedecer ao formato: ggg.mmss

    (graus.minutos_segundos).

    A frmula para o clculo : D = 100* tg(i) ou D = (Dn/Dh)*100

    6) Escrever um programa para calcular a distancia horizontal (Dh) utilizando

    mira Horizontal. Os dados de entrada devem ser o comprimento da mira

    horizontal (b), e o ngulo horizontal (). O ngulo horizontal em graus deve

    obedecer ao formato: ggg.mmss (graus.minutos_segundos).

    A frmula para o clculo : Dh = b / (2*tg(/2))

    Exerccio

    7) Escrever um programa para calcular o azimute de um alinhamento de uma

    poligonal topogrfica. O usurio dever entrar com o azimute do alinhamento

    anterior e o ngulo horrio entre os dois alinhamentos.

  • 2016/2

    Prof. Afonso P. Santos 18

    Exerccio

    8) Escrever um programa para calcular as coordenadas X, Y do ponto p. Foi

    realizado um levantamento por interseo angular onde as observveis foram

    os ngulos A e B, o azimute AZAB. O usurio detinha as coordenadas X e Y do

    ponto A.

    Fonte: Rodrigues (2007)

  • 2016/2

    Prof. Afonso P. Santos 1

    Universidade Federal de ViosaCurso de Engenharia de Agrimensura e Cartogrfica

    EAM 480

    Programao aplicada a Eng. de Agrimensura e Cartogrfica

    AULA 03

    Prof. Afonso P. [email protected]

    Tel.: 3899-3029

    Sumrio

    Comandos de Controle de Fluxo; IF

    SELECT

    FOR

    WHILE

    Continue

    Break

    Return

    Abort

    Pause

    Exerccios.

  • 2016/2

    Prof. Afonso P. Santos 2

    Comandos de Controle de Fluxo

    Os comandos de controle de fluxo so a essncia de qualquer linguagem,porque governam o fluxo da execuo do programa.

    So poderosos e ajudam a explicar a popularidade da linguagem.

    Os comandos de Controle de Fluxo divididos em trs categorias:

    Comandos condicionais (de deciso) IF - SELECT

    Comandos de repeties (loop ou laos) WHILE - FOR

    Comandos de Interrupes e Continuao CONTINUE BREAK QUIT ABORT PAUSE

    COMANDOS CONDICIONAIS

  • 2016/2

    Prof. Afonso P. Santos 3

    sintaxe:if (condio) then

    bloco de comandos se a condio for verdadeiraelse

    bloco de comandos se a condio for falsaend

    Comando IF

    O comando IF instrui o computador a tomar uma deciso simples;

    Se a condio do comando if for verdadeiro, o computador executar ocomando ou o bloco;

    Se for falso, e se a clusula else existir, o computador executar o comando ou obloco definido;

    Comando IF

    Exemplo simples:

  • 2016/2

    Prof. Afonso P. Santos 4

    Exemplo:if(i==1)then

    comando 1;

    elseif(i>1 & i3 & i=0 e dy

  • 2016/2

    Prof. Afonso P. Santos 5

    Exemplos

    Comando SELECT

    Comando similar ao SWITCH na linguagemC/C++;

    Uma varivel testada sucessivamentecontra uma lista de variveis inteiras ou decaracteres. Depois de encontrar umacoincidncia, o comando ou o bloco decomandos executado.

    Se nenhuma coincidncia for encontrada ocomando else ser executado. O else opcional.

    select(varivel) case constante1 then

    bloco de comandoscase constante2 then

    bloco de comandoscase constante3 then

    bloco de comandos...else

    bloco de comandos end

  • 2016/2

    Prof. Afonso P. Santos 6

    Comando SELECT

    O comando select s testa igualdade,diferentemente, o if avalia uma expressolgica ou relacional;

    Duas ou mais constantes case pertencentesao mesmo select no podem ter valoresidnticos;

    select(varivel) case constante1 then

    bloco de comandoscase constante2 then

    bloco de comandoscase constante3 then

    bloco de comandos...else

    bloco de comandosend

    SELECT aninhado

    possvel utilizar um select comoparte de um bloco de comando deum outro select;

    Select aninhado quando seutiliza um select dentro de outroselect;

    Constantes case de valoresidnticos de dois select que estoaninhados no causam conflitos;

    select(x) case 1 then

    selext(y)case 0 then

    printf(erro de diviso por zero);else

    printf(diviso de K por Y eh: %d, k/y);end

    case 2 then

    printf(Multiplicao de K por Y eh: %d, k*y);case 3 then

    printf(Soma de K por Y eh: %d, k+y);else

    printf(Opo invalida);end

  • 2016/2

    Prof. Afonso P. Santos 7

    Exemplo

    O comando SELECT muito utilizado para a criao de menu.

    COMANDOS DE REPETIO

  • 2016/2

    Prof. Afonso P. Santos 8

    Comando FOR

    O comando for de alguma maneira encontrado em todas linguagensprocedurais de programao.

    Em sua forma mais simples, a incializao um comando de atribuio que ocompilador usa para estabelecer a varivel de controle da repetio (loop). Asvariveis tipo char devero receber valores entre aspas duplas ();

    O incremento define a maneira como a varivel de controle da repetio seralterada cada vez que o computador realizar uma iterao da repetio.

    A parada um valor limite da varivel de controle da repetio. Antes de cadaiterao o Scilab testa se o valor da varivel atingiu este valor de parada.Enquanto no for atingido tal valor, realiza-se a repetio.

    Sintaxe:

    for inicializao : incremento : paradabloco de comandos

    end

    Comando FOR

    for x=1 : 1 : 100

    disp(x);

    end

    Programa para imprimir valor de 1 a 10 tendo o incremento igual a 1

    A varivel X inicializada,no comando FOR, com ovalor igual a 1.

    A condio de parada docomando FOR 10. Logo se ovalor de X passar deste valorlimite, a repetio no maisexecutada, assim, prossegue ocdigo-fonte.

    A cada repetio docomando FOR a varivelutilizada (X) incrementadaem uma unidade (1)

  • 2016/2

    Prof. Afonso P. Santos 9

    Comando FOR

    for x=100: -5 : 70

    z = x*x;

    printf(O quadrado de %d eh %d \n\n, x, z);

    end

    Rastreio em programao muito utilizado quando se quer saber como umdeterminado algoritmo ou cdigo-fonte est funcionando.

    O rastreio feito pelo usurio de forma manual obtendo os valores de variveis eexpresses durante todo o cdigo-fonte, obedecendo os controles de fluxo domesmo

    loop x z

    1 100 10000

    2 95 9025

    3 90 8100

    4 85 7225

    5 80 6400

    6 75 5625

    7 70 4900

    Comando WHILE

    Uma outra maneira possvel de executar uma repetio utilizando o comandowhile.

    Ele permite que o cdigo fique sendo executado numa mesma parte doprograma de acordo com uma determinada condio.

    ele executado desde que a condio seja verdadeira

    testa a condio antes de executar

    Sintaxe:

    while condiobloco de comandos

    end

    A inicializao da varivel utilizada nacondio deve ser realizada previamente docomando while

    O incremento ou decremento da varivelutilizada na condio dever ser realizadano bloco de comandos do while

  • 2016/2

    Prof. Afonso P. Santos 10

    Comando WHILE

    x=100; //inicializao

    while x~=65

    z = x * x;

    printf(O quadrado de %d eh %d \n\n, x, z);

    x = x - 5; //decremento

    end

    loop x z

    1 100 10000

    2 95 9025

    3 90 8100

    4 85 7225

    5 80 6400

    6 75 5625

    7 70 4900

    8 65 -

    Sintaxe:

    while condiobloco de comandos

    end

    Exemplo

    Comandos de Repetio

  • 2016/2

    Prof. Afonso P. Santos 11

    COMANDOS DE INTERRUPES E CONTINUAO

    Comando CONTINUE

    Algumas vezes necessrio saltar uma parte do programa, para issoutiliza-se o comando continue.

    Este comando serve para: fora a prxima iterao de um loop; pular ocdigo que estiver em seguida;

  • 2016/2

    Prof. Afonso P. Santos 12

    Comando BREAK

    Quando este comando encontrado em qualquer lugar do corpo de umcomando condicional ou de repetio, ele causar seu trmino imediato.O controle do programa passar ento imediatamente para o cdigoseguinte.

    Comando PAUSE

    Quando este comando encontrado em qualquer lugar do corpo de umprograma, ele causar uma pausa e no console aparecer a seguinte frase:Digite "resume" ou "abort" para retornar ao nvel padro de prompt.

    Escolha resume para continuar a execuo ou abort para sair da execuo doprograma.

  • 2016/2

    Prof. Afonso P. Santos 13

    Comando ABORT e QUIT

    A funo QUIT provoca a terminao do SCILAB, fechando a tela principale todas as outras janelas secundrias;

    A funo ABORT interrompe a execuo do programa e volta ao consoledo Scilab

    Exemplo

    Faa o rastreio do texto abaixo que uma mistura de cdigo-fonte e algoritmo:

  • 2016/2

    Prof. Afonso P. Santos 14

    iterao linha i j n

    1

    4 5 5 0

    5 7

    6 7

    7 7

    8 2

    2

    4 7 9 2

    5 13

    6 13

    7 9

    8 4

    iterao linha i j n

    3

    4 9 13 4

    5 17

    6 17

    7 11

    8 6

    4

    4 11 17 6

    5 21

    6 21

    7 13

    8 8

    Exemplo

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 15

    Exemplo

    Escrever um programa que realize a rotao de um ngulo k em n pontosde coordenadas planimtricas (U,V) em relao a um ponto de origem decoordenadas (c,d). As coordenadas rotacionadas (X,Y) so determinadaspelo modelo abaixo:

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 16

    Exerccios

    1) Faa o rastreio do cdigo/algoritmo abaixo:

    i = 3; j=0; n=1;enquanto n menor que 6

    j = n + i;if (modulo(j, i) ~= 0) then

    j = j + 5;elseif (j>(n+i)) then

    j = j +2;else

    j = j -10;

    imprima o ji = i + 3;n aumenta mais uma unidade;

    fim

    Exerccios

    2) Faa um programa, com menu dinmico, de modo a transformar Rumopara Azimute e Azimute para Rumo. Utilize o formato do ngulo emGGG.MMSS;

  • 2016/2

    Prof. Afonso P. Santos 17

    Exerccios

    3) Escrever um programa para calcular estatsticas de um conjunto deresduos (V). Pea ao usurio para entrar com a mdia da amostra (Vm) eaps, entrar com os elementos da amostra, os resduos (Vi), (o usurio devedefinir o nmero total de resduos - n). Leia os dados e calcule o DesvioPadro, o Coeficiente de Variao e o RMS.

    Desvio Padro = S = raiz[ (Vi - Vm) / (n-1)]

    Coeficiente Variao = CV = (S/ Vm)*100

    RMS = raiz[ (Vi) / n]

    Exerccios

    4) Escrever um programa que aplique uma escala nos diferentes eixos (Eu, Ev)em n pontos de coordenadas planimtricas (U,V) em relao a um ponto deorigem de coordenadas (a,b). As coordenadas escaladas (X,Y) sodeterminadas pelo modelo abaixo:

    5) Escrever um programa que calcule a distncia horizontal (dr) e o desnvel(dn) de um levantamento taqueomtrico. Faa um menu para o usurioinformar qual tipo de ngulo vertical foi utilizado (zenital ou inclinao):

  • 2016/2

    Prof. Afonso P. Santos 18

    Exerccios

    6) Faa um programa, que faa o clculo dos azimutes de cada alinhamentode uma poligonal e calcule o erro angular do levantamento. Como dado deentrada o usurio deve informar o nmero de lados da poligonal (n), oAzimute inicial do primeiro lado (az0), os ngulos horizontais horrio entre osalinhamentos da poligonal.

    Azimute calculado = azimute anterior + ngulo horrio + 180Se > 360 subtrair 360 (-360)

    Se < 0 somar 360 (+360)

    Erro angular = Azimute final calculado Azimute inicial

    ouErro angular = (ang. Poligonal) Si (ou Se)

    Si = ang. Internos = 180.(n-2)Se = ang. Externos = 180.(n+2)

  • 2016/2

    Prof. Afonso P. Santos 1

    EAM 480

    Programao aplicada Engenharia de Agrimensura e Cartogrfica

    AULA 04

    Prof. Afonso P. Santosemail: [email protected]

    Universidade Federal de ViosaCurso de Engenharia de Agrimensura e Cartogrfica

    Sumrio

    Rotinas;

    Funes e Procedimentos;

    Recursividade;

    Funes como bibliotecas;

    Exerccios

  • 2016/2

    Prof. Afonso P. Santos 2

    Rotinas

    Um programa de computador pode possuir uma quantidadeenorme de linhas de comandos;

    Entretanto, um programa no deve ser um bloco nico de linhas deinstrues, mas sim uma estrutura modular de fcil manuteno,compostos de vrias partes que se conectam formando oprograma por inteiro;

    Uma das vantagens da programao estruturada em mdulos acapacidade de reutilizao dos cdigos;

    Cada mdulo chamado de Rotinas;

    Rotinas

    Em programas mais elaborados, o uso de rotinas essencial. Deve-se utilizar rotinas para:

    Modularizar um programa em partes menores;

    Executar uma tarefa rotineira;

    Aumentar a legibilidade do programa;

    Facilitar a manuteno de um programa;

  • 2016/2

    Prof. Afonso P. Santos 3

    Rotinas

    Um rotina um bloco de comandos ou instrues, adequadamenteidentificado que executa uma tarefa especfica dentro de umprograma;

    A rotina pode ser dividida:

    Procedimento: uma rotina que ao ser executada, no retorna umresultado ou valor alguma varivel;

    Funo: uma rotina que ao ser executada retorna um valor parauma varvel ou um resultado;

    Funes

    A forma geral das funes no Scilab:

    A palavra reservada que indica o incio da declarao de umafuno function. A palavra endfunction indica o trmino de umafuno;

    A identificao (nome) das funes segue a mesma regra dosidentificadores das variveis.

    function [x,y,..., zn] = nome_funo(lista_parmetros)

    variveis locais

    Corpo da funo

    ...

    endfunction

  • 2016/2

    Prof. Afonso P. Santos 4

    Funes

    function [saida1, saida2,...] = nome_funcao (ent1, ent2, ...)declaraes de variveis locais;bloco de comandos;

    endfunction

    Aps o nome da funo, abre-se parntesis e declara a lista de parmetrosutilizadas no corpo da funo;

    A lista de parmetros so variveis que iro receber os valores de outrasvariveis declaradas previamente no cdigo principal do programa;

    A variveis que sero apresentadas como resultado da aplicao da funodevero ser delimitadas por colchetes [ ] e separadas entre si por vrgulas.

    Pode-se ter mais de uma varivel como sada de uma determinada funo

    Variveis

    Na verdade existem trs tipos de variveis: Locais;

    parmetros formais;

    variveis globais.

    Variveis locais so declaradas dentro de uma funo ou dentro de umbloco de cdigo e s so criadas quando entra no bloco e descartadas aosair do mesmo (seu contedo se perde). prtica comum declarar asvariveis locais numa funo no comeo do bloco de cdigo de umafuno.

    Se uma funo usar argumentos, ento ela deve definir variveis queaceitaro os valores dos argumentos, as quais so chamadas deparmetros formais.

  • 2016/2

    Prof. Afonso P. Santos 5

    Variveis

    As variveis globais so conhecidas por todo o programa e podemser usadas por qualquer parte do cdigo, e mais, retm seus valoresdurante toda a execuo do programa.

    Argumentos podem ser passados para uma sub-rotina de duasformas: Na chamada por valor, feita uma cpia do valor do argumento para o

    parmetro formal da sub-rotina. Portanto, as alteraes que forem feitas nosparmetros da sub-rotina, no tero nenhum efeito sobre as variveis queforam usadas para cham-las.

    Na chamada por referncia, uma cpia do endereo de memria (ponteiros)de um argumento passado para o parmetro, assim as alteraes que foremfeitas nos parmetros formais afetaro as variveis usadas para chamar arotina (NO UTILIZVEL NO SCILAB)

    Exemplo - Funo

    Parmetros Formais (Chamada por Valor)

    Clculo da Declividade

  • 2016/2

    Prof. Afonso P. Santos 6

    Exemplo - Procedimento

    Exemplo

    Escrever um programa que realize a rotao de um ngulo k em n pontosde coordenadas planimtricas (U,V) em relao a um ponto de origem decoordenadas (c,d). As coordenadas rotacionadas (X,Y) so determinadaspelo modelo abaixo:

  • 2016/2

    Prof. Afonso P. Santos 7

    Exemplo

    Recursividade

    Uma funo recursiva quando ela chama a si mesma;

    function [saida] = nome_funo(lista_parmetros)

    variveis locais

    Corpo da funo

    nome_funo(lista_parmetros)

    ...

    endfunction

  • 2016/2

    Prof. Afonso P. Santos 8

    Exemplo - Recursividade

    Fatorial de um Nmero

    Exemplo - Recursividade

    Para calcular o fatorial de um nmero no negativo, o Scilab j possui uma funo implementada:

    factorial(num)

  • 2016/2

    Prof. Afonso P. Santos 9

    Funes como Bibliotecas

    No Scilab, existe a possibilidade de elaborar um arquivo .scecontendo somente funes em seu cdigo. Este arquivos defunes funciona como um biblioteca;

    Para carregar esta biblioteca dentro de um programa e usufruir desuas funes j implementadas, deve-se utilizar o comando exec

    Executar um programa do Scilab dentro de outro:

    exec(nome_do_arquivo.sce);

    Funes como Bibliotecas

    Exemplo:

    Crie uma biblioteca paraconverso de graus emradianos e vice-versa,alm da converso doformato GGG.MMSS.

    Nome:

    04.biblioteca.sce

  • 2016/2

    Prof. Afonso P. Santos 10

    Funes como Bibliotecas

    Para utilizao de um arquivo externocomo uma biblioteca:

    1. deve-se colocar o arquivo bibliotecana mesma pasta do programa emdesenvolvimento;

    2. alterar o diretrio de trabalho doScilab para que seja coincidente como diretrio do programa emdesenvolvimento.

    Exerccios

    1. Crie um programa no Scilab para obter as coordenadas docentroide de um polgono.onde: Xi e Yi so as coordenadas de cada vrtice de um polgono de n lados;

  • 2016/2

    Prof. Afonso P. Santos 11

    Exerccios

    2. Calcule a distncia horizontal (dh) e sua preciso (dh) a partir deuma dada distncia inclinada (S) [metros] (e sua preciso s[metros]) e um ngulo de inclinao (i) [graus decimais] (e suapreciso i [em segundos]).

    Considere que S e i no so correlacionados.

    . cos(i)

    .

    .

    Exemplo:S = 50m s = 0,05mi = 60 i = 1800dh = 25m dh = 0,378m

  • 2016/2

    Prof. Afonso P. Santos 1

    EAM 480

    Programao aplicada a Eng. de Agrimensura e Cartogrfica

    AULA 05

    Prof. Afonso P. Santosemail: [email protected]

    Tel: 3899-3029

    Universidade Federal de Viosa

    Curso de Engenharia de Agrimensura e Cartogrfica

    Sumrio

    Vetores e Matrizes

    Conceito

    Construo de Vetores

    Construo de Matrizes

    Leitura de Vetores e Matrizes

    Operadores

    Funes

    Exemplos

  • 2016/2

    Prof. Afonso P. Santos 2

    Vetores e Matrizes

    Uma matriz uma coleo de variveis do mesmo tipo que so

    referenciadas pelo mesmo nome e que so armazenadas em um

    espao contiguo da memria em uma ordem de ndice.

    Uma matriz pode ter de uma a vrias dimenses.

    unidimensional Vetor

    multi-dimensional Matriz

    No Scilab, como qualquer varivel, no se declara o tipo de um

    vetor ou uma matriz;

    Vetores

    Instrues Descrio

    Colchetes [] Marca o incio e o fim de um vetor ou matriz

    Vrgula , ou espao Separa elementos de um vetor linha

    Ponto e vrgula ;Separa elementos de um vetor coluna / Separa os

    elementos em linhas diferentes na matriz

    Apstrofo Faz a transposio de uma matriz ou vetor

    x = inicio : fimCria um vetor a partir de inicio at fim com o

    incremento um (1)

    x = inicio : increm : fimCria um vetor a partir de inicio at fim com o

    incremento de valor increm.

    x = linspace( inicio, fim, nelem)Cria um vetor a partir de inicio at fim com o valor

    nelem de elementos no vetor

    Um vetor pode ser criado na forma de linha ou de coluna;

  • 2016/2

    Prof. Afonso P. Santos 3

    Vetores

    Formas de criao de um vetor linha:

    vl = [1, 2, 3, 4, 5]

    vl = [1 2 3 4 5]

    vl = 1 : 0.5 : 5

    vl = 1 : 5

    vl = linspace(0, 10, 5)

    Vetores

    Formas de criao de um vetor coluna:

    vc = vl

    vc = [1; 2; 3; 4; 5]

    vc = [1 2 3 4 5]

    vc = linspace(0, 10, 5)

  • 2016/2

    Prof. Afonso P. Santos 4

    Matrizes

    As formas de criao de uma matriz segue a juno da criao de

    vetores linhas com vetores colunas:

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

    m = [1, 2, 3

    4, 5, 6

    7, 8, 9]

    Matrizes

    Matrizes Padro:

    Comando Descrio

    ones(l, c) Cria uma matriz de dimenso l x c com todos os elementos iguais a 1

    zeros(l, c) Cria uma matriz de dimenso l x c com todos os elementos iguais a 0

    eye(l, c) Cria uma matriz identidade de dimenso l x c

    rand(l, c)Cria uma matriz de dimenso l x c com nmeros aleatrios no intervalo

    [0,1)

    diag(v, d)

    Cria uma matriz de zeros onde o vetor v inserido na diagonal, sendo

    que o deslocamento d positivo aplicado nas colunas e o d negativo nas

    linhas

  • 2016/2

    Prof. Afonso P. Santos 5

    Matrizes

    Acesso aos elementos de uma Matriz

    Comando Descrio

    size(m, p)

    Retorna a dimenso de um vetor/matriz m. Se o parmetro p for 1

    obtm-se o numero de linhas, 2 para obter o numero de colunas e

    * para obter o nmero de elementos.

    who Exibe todas as funes do scilab

    Whos type constant Exibe todas as variveis e constantes do scilab

    m(l, c) Acesso ao elemento da matriz m localizado na linha l e coluna c

    m(2:3, 5:7)Trabalhando apenas com uma parte da matriz. Sub-matriz da linhas 2

    e 3 e colunas 5, 6 e 7

    m(3, : ) Extrai a terceira linha da matriz m

    m(4, : ) = [ ] Elimina a quarta linha da matriz m

    m( : ) Exibe os elementos da matriz m de forma linear, coluna por coluna.

    m($) Acessa o ltimo elemento da matriz/vetor

    unique(m)Exibe os valores nicos (sem repetio) dos elementos de uma

    matriz m.

  • 2016/2

    Prof. Afonso P. Santos 6

    Acesso aos elementos de uma Matriz

    Leitura de um Vetor/Matriz

  • 2016/2

    Prof. Afonso P. Santos 7

    Leitura de um Vetor/Matriz

    Leitura de um Vetor/Matriz

  • 2016/2

    Prof. Afonso P. Santos 8

    Operadores Matriciais

    Operaes entre matrizes:

    Operador tipo Descrio

    + - binrio Soma e Subtrao. Matrizes tem que ter a mesma dimenso.

    unrio Transposta

    * binrioMultiplicao. O primeiro operando tem que ter o numero de

    colunas iguais ao nmero de linhas do segundo operando.

    .* ./ .^ binrioMultiplicao, Diviso e Potenciao pontual (elemento a

    elemento). Matrizes tem que ter a mesma dimenso.

    x = [m, a] - Concatenao por colunas das matriz m e a

    x = [m; a] - Concatenao por linhas das matriz m e a

    Operadores Matriciais

    Operaes com matriz e um escalar:

    Operador tipo Descrio

    + - binrio Soma e Subtrao de uma matriz por um escalar.

    * / binrio Multiplicao e Diviso de uma matriz por um escalar.

    ^ binrio Potenciao de uma matriz por um escalar.

  • 2016/2

    Prof. Afonso P. Santos 9

    Funes Matriciais

    Operador Descrio

    inv(m) Retorna a inversa da matriz m.

    det(m) Retorna o determinante da matriz m.

    max(m) Retorna o maior valor entre os elementos da matriz m.

    min(m) Retorna o menor valor entre os elementos da matriz m.

    sum(m) Retorna a somatrio dos valores dos elementos da matriz m.

    prod(m) Retorna o produtrio dos valores dos elementos da matriz m.

    sign(m)Retorna uma matriz onde cada elemento exibe o sinal (positivo 1

    negativo-1) do elemento da matriz m.

    tril(m)Mantm a triangulao inferior da matriz m, e zera a triangulao

    superior.

    triu(m)Mantm a triangulao superior da matriz m, e zera a triangulao

    inferior.

    Exemplo

    Escrever um programa para calcular estatsticas bsicas

    Entrada: amostra;

    Processamento:

    Mdia Desvio Padro

    Varincia

    Sada: mdia, desvio padro, varincia;

    2)()var( xsx =

    n

    x

    x

    n

    i

    == 1)(

    1

    ))((

    )( 1

    2

    ==

    n

    xx

    xs

    n

    i

  • 2016/2

    Prof. Afonso P. Santos 10

    Exemplo

    Exemplo

    Escrever um programa para ler duas matrizes quadradas A e B, e calcular a

    soma, subtrao e multiplicao entre elas.

    Algoritmo:

    Ler a matriz A

    Ler a matriz B

    Calcular a soma

    Calcular a subtrao

    Calcular a multiplicao

    Imprimir o resultado em tela

  • 2016/2

    Prof. Afonso P. Santos 11

    Exerccios

    1 ) Escrever um programa para transformar uma data (dia, ms, ano) do

    calendrio gregoriano em dias corridos do ano.

    Ex: 05-01-2010 (5 JAN) dia = 5;

    Ex: 18-03-2010 (18 MAR) dia = 77;

    OBS: O programa dever verificar se o ano bissexto! Para verificar se o

    ano bissexto as condies abaixo tem que serem atendidas:

    - Ano for divisvel por 4;

    - Ano no for divisvel por 100, ou ser divisvel por 400.

  • 2016/2

    Prof. Afonso P. Santos 12

    Exerccios

    2) Escrever um programa que realize a rotao de um ngulo k em n

    pontos de coordenadas planimtricas (U,V) em relao a um ponto de

    origem de coordenadas (c,d). Utilize de uma estrutura matricial para

    resoluo deste exerccio. As coordenadas rotacionadas (X,Y) so

    determinadas pelo modelo abaixo:

    Exerccios

    3) Escrever um programa para calcular estatsticas de um conjunto de

    resduos (V). Antes da entrada dos elementos da amostra, os resduos (Vi),

    o usurio deve definir o nmero total de resduos (n). Leia os dados e

    calcule o Desvio Padro, o Coeficiente de Variao e o RMS.

    Desvio Padro = S = raiz[ (Vi - Vm) / (n-1)]

    Coeficiente Variao = CV = (S/ Vm)*100

    RMS = raiz[ (Vi) / n]

  • 2016/2

    Prof. Afonso P. Santos 13

    Exerccios

    4) Escrever um programa que aplique uma escala nos diferentes eixos

    (Eu, Ev) em n pontos de coordenadas planimtricas (U,V) em relao a

    um ponto de origem de coordenadas (a,b). Utilize de uma estrutura

    matricial para resoluo deste exerccio. As coordenadas escaladas (X,Y)

    so determinadas pelo modelo abaixo:

  • 2016/2

    Prof. Afonso P. Santos 1

    EAM 480

    Programao aplicada Engenharia de Agrimensura e Cartogrfica

    AULA 07

    Prof. Afonso P. Santosemail: [email protected]

    Universidade Federal de Viosa

    Curso de Engenharia de Agrimensura e Cartogrfica

    Sumrio

    Entrada e sada de dados via arquivos;

    Funes simples

    Associao de arquivos

    Leitura em um arquivo;

    Escrevendo em um arquivo;

    Exemplo;

    Exerccios

  • 2016/2

    Prof. Afonso P. Santos 2

    Arquivos

    Arquivos so unidades de armazenamento de informaes, que fica

    gravado em uma unidade de memria secundria (HD) do

    computador;

    Arquivos de computador podem ser considerados como o

    equivalente aos documentos em papel que tradicionalmente so

    armazenados em arquivos de escritrios e bibliotecas, sendo esta a

    origem do termo;

    Os arquivos so acessados/identificados/criados de acordo com o

    seu nome e extenso, bem como o diretrio a qual ele est

    armazenado;

    O SciLab possui a capacidade de trabalhar com arquivos textos

    (legveis por humanos) que podem ser editados pelo Bloco de

    Notas ou qualquer programa leitor de texto;

    Funes Simples

    save salva as variveis da memria do scilab para um arquivo

    load recupera as variveis de um arquivo

    diary criar um arquivo de log, mantendo um registro de toda aatividade desenvolvida no SciLab.

    save(nome_arq, var1, var2, varN);

    diary(log021015.sav);

    diary(0);

    Iniciar:

    Terminar:

    load(nome_arq, var1, var2, varN);

  • 2016/2

    Prof. Afonso P. Santos 3

    Exemplo 1

    Exemplo 2

  • 2016/2

    Prof. Afonso P. Santos 4

    Associao de Arquivos

    Antes de associar um determinado arquivo ao SciLab, deve-se saber o

    endereo do seu diretrio, seu nome e extenso;

    O comando uigetfile permite a seleo de um arquivo por meio de umajanela de dilogo onde possvel a navegao nos diretrios do sistema

    operacional. Esta seleo grava o diretrio e o nome do arquivo em uma

    varivel do tipo string;

    Conhecendo o endereo completo do arquivo possvel associar este

    arquivo ao SciLab, utilizando o comando mopen para realizar a aberturado arquivo ou a criao de um novo arquivo.

    J o comando mclose permite a dissociao deste arquivo, fechando-o;

    Associao de Arquivos

    uigetfile

    nomearq = uigetfile(*.*, pwd(), Selecione o arquivo);

    Diretrio padro do SciLabFiltro de Arquivos

    Mostrar todos arquivos *.*

    Mostrar s TXT *.txt

    Ttulo da Janela de Dilogo

  • 2016/2

    Prof. Afonso P. Santos 5

    Associao de Arquivos

    mopen associa um arquivo ao SciLab, realizando a abertura domesmo. O modo r abre um arquivo j existente para leitura, e o modo

    w cria um novo arquivo e em seguida realiza o processo de abertura ou

    abre um arquivo j existente para gravao;

    mclose disassocia um arquivo no SciLab, realizando o processo defechamento do arquivo em manipulao;

    meof retorna verdadeiro (%T) se o final do arquivo for encontrado.

    var_arq = mopen(nomearq, r);

    mclose(var_arq);

    Leitura de um Arquivo

    mfscanf realiza o processo de leitura de uma linha do arquivo,associado ao SciLab, atribuindo os valores lidos s variveis.

    [n, lista_var] = mfscanf(arq, formato);

    1 2.3 4.5

    2 5.6 7.8

    3 2.6 4.7

    Arquivo.txt

    while ~meof(arq)

    [n,id,num1,num2] = mfscanf(arq, %d %f %f);

    end

    while ~meof(arq)

    [n,id,num1,num2] = mfscanf(arq, %d %f %f);

    end

    Cdigo para leitura

    Sempre l a quantidade

    de valores de uma linha

  • 2016/2

    Prof. Afonso P. Santos 6

    Escrevendo em um Arquivo

    mfprintf realiza o processo de gravao de uma varivel ou textodentro de um arquivo que est associado ao SciLab.

    mfprintf(arq, frase ou formato, lista_var);

    1 2.3 4.5

    Arquivo_saida.txt

    mfprintf(arq, %d %f %f, id, num1, num2);mfprintf(arq, %d %f %f, id, num1, num2);

    Cdigo para gravao

    Manipulao de um Arquivo

    Ao ler ou escrever em um arquivo quase sempre utiliza-se de um comando

    de repetio para este processo;

    Normalmente o controle de parada da repetio pode ser de duas formas:

    fim do arquivo: utiliza-se da funo meof() (end of file) para verificar

    se o arquivo est no fim; meof() retorna verdadeiro se a posio atual

    do arquivo estiver no fim.

    Nmero de linhas a serem lidas: configura-se o arquivo de leitura para

    que a primeira linha contenha o nmero de linhas que sero lidas nas

    linhas abaixo do arquivo;

  • 2016/2

    Prof. Afonso P. Santos 7

    Exemplo 3

    Leitura de um arquivo Texto

    Exemplo 4

    Escreva um programa em SciLab para realizar a leitura dos vrtices de um

    polgono disponveis em um arquivo-texto. Em seguida, calcule o

    centroide do polgono e salve o resultado em um outro arquivo-texto;

    Arquivo a ser lido

    Arquivo a ser gerado

  • 2016/2

    Prof. Afonso P. Santos 8

    Exemplo 4Clculo de centroide de um

    polgono (ler e gravar arquivo)

    continua...

    Exemplo 4Clculo de centroide de um

    polgono (ler e gravar arquivo)

  • 2016/2

    Prof. Afonso P. Santos 9

    Exerccio

    1) Crie um programa para o clculo da distncia reduzida e desnvel a

    partir de dados de taqueometria. Os dados devem serem lidos a partir de

    um arquivo com a seguinte estrutura:

    Considere todas as variveis do tipo double, com exceo do ID_ponto que

    ser do tipo char[5];

    Considere a constante do equipamento com valor igual a 100;

    O arquivo de entrada no dever ter cabealho nem o nmero de pontos a

    serem lidos, apenas os dados brutos.

    Os resultados sero mostrado em um arquivo de texto gerado

    automaticamente pelo programa com o nome sai_taqueometria.txt

    ID_Ponto ngulo_horiz ngulo_zenital FS FM FI alt_instr

    Exerccio

    2) Crie um programa para o clculo da rea e permetro de um polgono.

    Os dados devem serem lidos a partir de um arquivo com a seguinte

    estrutura:

    Os resultados devero serem mostrados em tela;

    Utilize o mtodo de Gauss para o clculo da rea (S):

    Para o clculo do permetro crie um vetor para armazenar as distncias e ao

    final some-as;

    x y

    2S = x1y2 x2y3 x3y4 ... xny1 + x2y1 + x3y2 + x4y3 + ... + x1yn.

  • 2016/2

    Prof. Afonso P. Santos 1

    EAM 480

    Programao aplicada Engenharia de Agrimensura e Cartogrfica

    AULA 08

    Prof. Afonso P. Santosemail: [email protected]

    Universidade Federal de ViosaCurso de Engenharia de Agrimensura e Cartogrfica

    Sumrio

    Tipos de dados definidos pelo usurio Listas (List)

    Estruturas (Struct)

    Exemplos;

    Exerccios;

  • 2016/2

    Prof. Afonso P. Santos 2

    Tipos de dados definidos pelo usurio

    O SciLab permite que seja criados diferentes tipos de dadospersonalizados.

    Aqui ser visto dois tipos:

    Listas (list), uma classe de varivel que permite o armazenamento dediferentes tipos de dados;

    Estrutura (struct), que um grupo de variveis sob o mesmo nome;

    Listas

    Listas: uma classe de varivel (estilo ao de uma matriz) que permite oarmazenamento de diferentes tipos de dados;

    A palavra reservada list informa ao interpretador que est sendo definidoos valores de uma lista.

    L = list(EAM, -3.2, [1,2,3,4], 3, [a b; c d]);

    var_lista = list(valor1, valor2, valor3, ..., valorN);

  • 2016/2

    Prof. Afonso P. Santos 3

    Listas

    Diferentemente do C e C++, o ndice de umalista, estrutura ou matrizes no SciLab semprese inicia do ndice 1;

    Listas

    Acessar um elemento da Lista:

    Basta fazer a chamada da varivel de lista, com o ndice do elementoda lista delimitados por parntesis:

    Extrao um elemento da Lista:

    Uma varivel recebe os valores de um determinado ndice da lista:

    [a , b] = L([1, 3]);

    var_lista(ndice_elementoN);

    var = var_lista(ndice_elementoN);

  • 2016/2

    Prof. Afonso P. Santos 4

    Listas

    Atribuir um novo valor para um elemento de uma

    Lista:

    Basta fazer a chamada da varivel de lista, com ondice do elemento da lista delimitados porparntesis recebendo o novo valor.

    L(4) = UFV;

    var_lista(ind_elemN) = NOVOvalor;

    Listas

    Atribuir um novo elemento de uma Lista:

    Basta fazer a chamada da varivel de lista, com ondice do novo elemento da lista delimitados porparntesis recebendo o novo valor.

    L(6) = 100;

    var_lista(ind_elemNOVO) = NOVOvalor;

  • 2016/2

    Prof. Afonso P. Santos 5

    Listas

    Remoo de um elemento da Lista:

    Atribui-se ao elemento da varivel de lista ainstruo null():

    L(3) = null();

    var_lista(ind_elem) = null();

    Repare que o elemento da lista removido e uma nova ordem dendice criada. Assim como o ndice 3 foi apagado, instantaneamenteo ndice 4 se transforma em ndice 3, para que a numerao dosndices fique contnua.

    Estruturas

    Estruturas: um grupo de variveis s quais faz-se referncia sob omesmo nome.

    A palavra reservada struct informa ao interpretador que est sendodefinido o gabarito de uma estrutura.

    var = struct(campo1, valor1, campo2, valor2, ..., campoN, valorN);

  • 2016/2

    Prof. Afonso P. Santos 6

    Estruturas

    Acessar um campo da estrutura:

    A referncia aos elementos da estrutura pode ser feito colocando onome da varivel de estrutura, que seguido de um ponto, e o nomedo campo especfico da estrutura.

    Atribuindo um valor ao campo de uma estrutura:

    var_estrutura.nomeCampo;

    var_estrutura.nomeCampo = NovoValor

    Estruturas

    Removendo um campo da estrutura:

    Atribui-se ao campo da varivel de estrutura a instruo null().

    var_estrutura.nomeCampo = null();

  • 2016/2

    Prof. Afonso P. Santos 7

    Estruturas

    Funo Descrio Exemplo

    isstruct() Verifica se a varivel uma estrutura

    fieldnames() Retorna os campos de uma estrutura

    isfield() Checa se um nome de campo existe na estrutura

    Estruturas

    Vetor de Estruturas:

    Cria-se a varivel de estruturas com os seus respectivos campos, evalores zerados;

    Para inserir os dados em cada ndice do vetor basta atribuir o valor varivel da estrutura no ndice i (delimitado por parntesis), seguidodo caractere ponto (.) e do nome do campo:

    var(i).nomeCampo = valor;

    var = struct(campo1, 0, campo2, 0, ..., campoN, 0);

  • 2016/2

    Prof. Afonso P. Santos 8

    Exemplo

    Implementar um programa que faa o processamento de uma linha denivelamento geomtrico simples.

    Dados de entrada: arquivo com as leituras da mira em cada estaca, bem como acota da estaca inicial (r).

    Dados de sada: arquivo contendo as diferenas de nvel em relao a estacainicial (r) e as cotas de cada estaca.

    Menu:Sair do Programa;Ler arquivo de dados;Calcular nivelamento;Gravar arquivo de resultados;

    Estrutura do Arquivo a ser lido:N de estacas

    Cota Inicial

    ID_Estaca Dist_est_interm leit_mira

    ...

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 9

    Exemplo

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 10

    Exemplo

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 11

    Exerccio

    1) Crie um programa para calcular dados provenientes de um nivelamentotrigonomtrico por taqueometria;

    A entrada de dados deve se dar por arquivos;

    A sada dos dados (resultados) tambm deve se dar por arquivos;

    Utilize tipos definidos pelo usurios;

    Exerccio

    2) Crie um programa para calcular dados provenientes de um nivelamentotrigonomtrico apenas por estao total.

    Considere que o usurio coletou Distancia Inclinada (em metros) e nguloZenital (j em graus decimais);

    A entrada de dados deve se dar por arquivos;

    A sada dos dados (resultados) tambm deve se dar por arquivos;

    Utilize tipos definidos pelo usurios;

    Estrutura do Arquivo a ser lido:N de estacas

    Cota do ponto onde a Estao Total est estacionada

    Altura da Estao Total

    ID_Estaca Dist_Inclinada Ang_Zenital Alt.Prsima

    ...

  • 2016/2

    Prof. Afonso P. Santos 12

    Estao Total: Lfm a altura no prisma; di obtido diretamente

    dn = dv + ih Lfm

    dn = di.cos(Z) + ih - Lfm (geral dist. inclinada)dn = m.g.sen(2.z)/2 + ih Lfm (taqueometria)

  • 2016/2

    Prof. Afonso P. Santos 1

    EAM 480

    Programao aplicada Engenharia de Agrimensura e Cartogrfica

    AULA 09

    Prof. Afonso P. Santosemail: [email protected]

    Universidade Federal de ViosaCurso de Engenharia de Agrimensura e Cartogrfica

    Sumrio

    Limites

    Derivadas

    Exemplos Ajustamento MMQ

    Exerccios;

  • 2016/2

    Prof. Afonso P. Santos 2

    Limites

    O SciLab no dispe de um comando especifico para o clculodo limite de uma funo;

    Pode-se definir uma faixa de valores bem prximos paradescobri o limite de uma funo;

    A regra de LHopital tem como objetivo calcular o limite de fraes no caso em que ocorre indeterminaes do tipo 0/0 ou /

    Para achar o limite da funo basta derivar o numerador e o denominador.

    Ex: lim

    Aplicando a regra:

    .

    . 2

    Limites

    No Scilab:

    lim

    4

    4Valor igualValor bem prximo

  • 2016/2

    Prof. Afonso P. Santos 3

    Derivadas

    Se diz que uma funo f(x) derivvel ou diferencivel se, prximoa cada ponto m do seu domnio a funo f(m) se comporte comouma funo linear, ou seja, seu grfico for aproximadamente umareta.

    A derivada o coeficiente angular da reta tangente ao grfico dafuno no ponto m.

    A representao da derivada dada por f (m) ou

    As derivadas so extremamente importante em aplicaes deajustamento de observaes pelo Mtodo dos Mnimos Quadrados,quando se utiliza as derivadas parciais para confeco da matrizjacobiana A (ou matriz design);

    Derivadas (Polinmio)

    O comando geral de calcular a derivada em uma funopolinomial derivat;

    necessrio definir a funo polinomial e em seguida utilizaro comando derivat para realizar a derivao algbrica dafuno;

    y= x - 5x + 6y = 2x 5

  • 2016/2

    Prof. Afonso P. Santos 4

    Derivadas (em um ponto)

    O comando geral de calcular a derivada em um ponto utilizar o comando derivative ou numderivative;

    Para utilizao deste comando necessrio, incialmente, acriao de uma estrutura de funo (function) cuja a funo aser derivada dever ser definida. Aps utiliza-se o comandode derivao em um determinado ponto;

    f(x) = x - 5x + 6f (x) = 2x 5f (4) = 3

    Derivadas parciais

    f1 = sen(x1) + x2 + x3f2 = x1 + x2 + x3

    1

    1

    1

    2

    1

    3

    2

    1

    2

    2

    2

    3

  • 2016/2

    Prof. Afonso P. Santos 5

    Exemplo

    Realizar o ajustamento de observaes de uma rede de

    nivelamento

    Exemplo

    Realizar o ajustamento de observaes de uma rede de

    nivelamento

    Acompanhar explicao, croqui e desenvolvimento no quadro.

  • 2016/2

    Prof. Afonso P. Santos 6

    Exemplo

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 7

    Exemplo

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 8

    Exemplo

  • 2016/2

    Prof. Afonso P. Santos 1

    EAM 480

    Programao aplicada Engenharia de Agrimensura e Cartogrfica

    AULA 10

    Prof. Afonso P. Santosemail: [email protected]

    Universidade Federal de ViosaCurso de Engenharia de Agrimensura e Cartogrfica

    Sumrio

    Grficos 2d - linhas;

    2d - Barra / colunas / setas

    2d - Vetor de Deslocamento;

    2d perspectiva, dando sensao 3d;

  • 2016/2

    Prof. Afonso P. Santos 2

    Grficos

    O SciLab dispe de vrios comandos para criao emanipulao de grficos;

    Existe a possibilidade de gerar grficos 2D (bi-dimensional) egrficos em perspectiva que que d uma ideia de umambiente 3D (tridimensional);

    Existem vrios tipos de grficos 2D como: barra, colunas,linhas, vetores de deslocamentos, etc.

    Grficos 2D - linhas

    O comando utilizado para criar grficos 2D de linhas ocomando plot2d ou plot;

    x e y devem ser vetores ou matrizes, com a mesma dimenso;assim, a funo plot2d permite traar um grfico de y emfuno de x;

    permitido utilizar apenas a varivel y para traar o grfico:plot2d(y);

    Se as variveis forem matrizes, ser criada uma linha nogrfico para cada coluna da matriz;

    plot2d ( x , y) plot ( x , y)

  • 2016/2

    Prof. Afonso P. Santos 3

    Grfico 2D (vetor)

    Janela Grfica

    Ao executar novamente o comando plot2d, os grficossubsequentes so apresentados na mesma janela grfica (porcima dos anteriores). Assim necessrio limpar a janelagrfica ou criar outra janela grfica;

    Limpando Janela Grfica:

    Criando uma nova Janela Grfica:

    clf ( );

    scf (n); Onde n o nmero sequencia decada janela criada. Ex: 0, 1, 2, 3,etc...

  • 2016/2

    Prof. Afonso P. Santos 4

    Grfico 2D (matriz)

    Grficos 2D - linhas

    Comando plot2d com todos os parmetros possveis:

    Style: utilizada para especificar o estilo das curvas. Valoresinteiros positivos define uma curva contnua cm determinada cor.Valores inteiros negativos define uma curva tracejada ou commarcadores;

    Rect: Define a dimenso do grfico: [xmin, ymin, xmax, ymax];

    Logflag: ajusta a escala (linear ou logartmica) ao longo dos eixos. Ovalor associado deve ser um string com um dos possveis valores:"nn", "nl" , "ln" e "ll; onde n a escala normal e l a escalalogartmica;

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

  • 2016/2

    Prof. Afonso P. Santos 5

    Grficos 2D - linhas

    Comando plot2d com todos os parmetros possveis:

    Frameflag: utilizada para controlar a escala dos eixoscoordenados. O valor utilizado deve ser um nmero inteiro de 0 a 8;

    Axesflag: especifica como os eixos sero traados. O valor utilizadodeve ser um nmero inteiro de 0 a 5;

    Leg: permite definer as legendas das curvas. O valor utilizado deveser uma string. Se tiver mais de uma legenda separar os strings pelosmbolo @;

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

    Grfico 2D - linhas

  • 2016/2

    Prof. Afonso P. Santos 6

    Edio de Ttulo e Eixos

    Forma Manual:

    Edio de Ttulo e Eixos

    Comando para inserir ttulo do grfico:

    Comando para inserir uma grade de coordenadas no grfico

    xtitle(Ttulo);

    xgrid(n);

  • 2016/2

    Prof. Afonso P. Santos 7

    Grficos 2D barras / colunas / setas

    Comando plot2d2: grfico de colunas;

    Comando plot2d3: grfico de barras;

    Comando plot2d4: grfico de setas;

    plot2d2 ( x , y)

    plot2d3 ( x , y)

    plot2d2 ( x , y)

    Grficos 2D barras / colunas / setas

  • 2016/2

    Prof. Afonso P. Santos 8

    Grficos 2D barras / colunas / setas

    Grficos 2D barras / colunas / setas

  • 2016/2

    Prof. Afonso P. Santos 9

    Grfico Vetor de Deslocamento

    O comando utilizado para criar grficos com setas indicando umcampo vetorial ou vetores de deslocamento ou discrepncias ocomando champ

    champ(x, y, dx, dy);

    Grficos 3D*

    O comando utilizadopara criar grficos 2Dem perspectiva, que dideia de 3D, ocomando plot3d

    Mais opes de parmetros, como oapresentado no comando plot2d,consultar o help do scilab

    Plot3d(x,y,z);

  • 2016/2

    Prof. Afonso P. Santos 10

    Outros Grficos

    polarplot cria um grfico 2d polarcontour2d traa curvas de nvel em uma superfcie num grfico 2derrbar acrescenta barras de erros em um grfico;fgrayplot cria uma superfcie definida por uma funo usando coresgrayplot cria uma superfcie num grfico 2d usando coresmesh faz um grfico 3D definido por uma redepie cria um grfico circular no formato pizza