Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 23

Introdução a MAC113 – 2018

Marcelo Finger

25/02/2018
Programas
Estrutura de um Programa

# Preâmbulo -- Isso aqui é um comentário; não gera código


library(XLConnect) # Carrega o pacotew XLConnect

# Comandos -- Neste exemplo: Leitura de Planilhas


wk <- loadWorkbook("alunos113.xls")
df <- readWorksheet(wk, sheet="NotaFinal")

# Definições de função
alunosDeREC <- function(notas) {
cont <- 0
for( n in notas ) {
if( n >= 3.0 && n < 5 )
cont <- cont + 1
}
return( cont )
}
# Mais comandos
cat("\nN. de alunos de REC: ", alunosDeREC(planilha$nota) )

# Não é boa prática espalhar comandos pelo programa

### Comentários são para humanos, ignorados pela máquina


### Em R, um comentário é iniciafdo por '#'
### e terminado pelo fim da linha

### Muito importantes para a clareza do programa

### Mas não devem ser usados de forma redundante. Ex:


### x+1 # soma 1 a x (comentário inútil)
Elementos da estrutura

I Um programa pode ter várias partes


I Preâmbulo: bibliotecas (pacotes) que serão usadas no corpo do
programa
I Comandos: é o que será executado
I Definições de função: deve ser invocado nos comandos
I Nenhuma destas partes é obrigatória
I Ao menos uma deve estar presente
I Existem boas práticas e práticas ruins ao programar
Tipos de Comandos

1. Atribuição
2. Sequência
3. Bloco
4. Seleção
5. Iteração
Comando de Atribuição
Variável

I É um abstraçao da memória do computador


I Propriedades
I nome (endereço)
I estado (valor)
I tipo: básico ou composto
I Em R, o nome da variável pode conter
I letras (incluindo acentos)
I números
I sinais: ‘.’ e ’_’
I Deve começar com letra ou ‘.’ (variável escondida)
Alguns tipos básicos de variáveis

I numérico
I inteiro: n <- 56
I ponto flutuante: pi <- 3.14
I dinheiro: não é ponto flutuante
I Strings: Cadeias de caracteres
I palavra <- "bla"
I palavra2 = 'isso é uma frase'
I Tipos Lógicos
I buscando <- TRUE
I ok = FALSE
I Oportunamente, veremos tipos compostos de dados
Comando Atribuição

Expressõesm no seguinte formato:

I <variável> <- <expressão>

ou

I <variável> = <expressão> # não é uma iguladade !!!!!

Comportamento: compute o valor da <expressão> e armazene o


resultado na <variável>
Exemplos de Expressões

I x <- 7/3 # x = 2.333333


I x <- 7 %/% 3 # x = 2, divisão inteira
I x <- 7 %% 3 # x = 1, resto da divisão
I y <- (3 * (4+x)) %% 2 # y = 1
I x <- x + 1 # x = 2 (muito frequente)
Expressões Lógicas Básicas

São também chamadas - x <- 1

I x >= 0 # TRUE
I x < 0 # FALSE
I x == 1 # TRUE
I x == 0 # FALSE
I 0 == "0.0" # FALSE
Leitura do teclado

num <- readline("Entre com um número: ")


num <- as.numeric(num)

A segunda linha é necessária pois readline lê strings.


Em uma única linha:

num <- as.numeric( readline("Entre com um número: ") )

## Entre com um número:


Sequência e Blocos
Sequência natural

Se nada o detiver, um programa em R executará sequencialmente

Comando 1
Comando 2
...
Comando n
Bloco de comandos

Em todo lugar em que um comando pode ocorrer, um bloco piode


ocorrer:

{
Comando 1
Comando 2
...
Comando n
}

Bloco ajudam a delimitar o escopo de variáveis (a ser detalhado)


Comando de seleção
Comando if()

if( <condição> )
comando 1
comando 2

O comportamento do comando if():

I <condição> é avaliada
I Esta <condição> pode estar entre dois valores: TRUE
(verdadeiro) e FALSE (falso)
I Se a condição for verdadeira, o comando 1 é executado e, em
seguida, o comando 2 é executado.
I Se a condição for falsa os comando 1 não é executado, e o
próximo comando a ser executado é o comando 2.
Exemplo 1: valor absoluto

# Lê num e formata como numérico


num <- readline("Digite número para valor absoluto: ")
num <- as.numeric(num)

valAbs <- num


if( num < 0 ) {
valAbs = -num
}

print( valAbs )
Comando if-else

if (<condição>) {
comandos 1
} else {
comandos 2
}
comando 3

I A <condição> é avaliada
I Se for verdadeira, os comandos 1 são executados; não executa
comandos 2
I Se for falsa, comandos 2 são executados; não executa
comandos 1
I Em ambos os casos, o próximo comando a ser executado é o
comando 3.
Exemplo 2: positividade

# Lê num e formata como numérico


num <- readline("Entre com um número: ")
num <- as.numeric(num)

# Testa positividade
if( num >=0 ) {
print( "Número é positivo" )
} else {
print( "Número é negativo" )
}
If-else encadeado

if ( <condição1>) {
comandos 1
} else if (<condição2>) {
comandos 2
} else if (<condição3>) {
comandos 3
} else {
comandos 4
}
Exempolo 3: veredito

# Lê uma nota
nota <- as.numeric(readline("Digite a nota: "))

# classifica a nota
if(nota >= 5) {
print("Passou!!!")
} else if( nota >= 3 ) {
print( "Recuperação" )
} else
print( "Pau" )

Você também pode gostar