diff --git a/_site.yml b/_site.yml index 8afe776b8c356d5da58836a2503c7f6ec0636526..3578893084e98477f7605674ea7f6fbc60b47f23 100644 --- a/_site.yml +++ b/_site.yml @@ -25,6 +25,8 @@ navbar: menu: - text: "Boas vindas" href: slides/00-intro.pdf + - text: "Revisão de prog." + href: slides/01-revis-program.pdf # - text: "Estruturas de controle" # href: slides/01-estru-repet.html # - text: "Teorema da Transformação da Probabilidade" diff --git a/slides/00-intro.Rnw b/slides/00-intro.Rnw index ea6d01b387357980a8a8319c20c9da0ef9791681..f3d0b982bb2742e5b09bb1ee09c45ac6e79c7f22 100644 --- a/slides/00-intro.Rnw +++ b/slides/00-intro.Rnw @@ -289,7 +289,7 @@ source("config/setup.R") \usebackgroundtemplate{\includegraphics[height=\paperheight, width=\paperwidth]{../img/looking-ahead.jpg}} % \setbeamersize{text margin left=30mm} - \begin{frame}[c]{} + \begin{frame}[b]{} \hspace*{0.5\linewidth} \begin{minipage}[t]{0.5\linewidth} @@ -302,6 +302,15 @@ source("config/setup.R") \item Programação funcional. \item \emph{Debugging}. \end{itemize} + + \hi{Dever de casa} + \begin{itemize} + \item Criar conta no Moodle do C3SL. + \item Fazer matrícula na disciplina. + \item Estar em dia com a conta no C3SL. + \item Atualizar o R no computador pessoal. + \end{itemize} + \end{minipage} \end{frame} diff --git a/slides/01-revis-program.Rnw b/slides/01-revis-program.Rnw new file mode 100644 index 0000000000000000000000000000000000000000..d3429d6add7e2dd96cccddf87ebcfbeb84ec7e6e --- /dev/null +++ b/slides/01-revis-program.Rnw @@ -0,0 +1,170 @@ +%----------------------------------------------------------------------- + +\documentclass[serif, professionalfont, usenames, dvipsnames]{beamer} +\usepackage[T1]{fontenc} + +% ATTENTION: preamble.tex contains all style definitions. +\input{config/preamble.tex} + +<<include = FALSE>>= +source("config/setup.R") +@ + +%----------------------------------------------------------------------- + +\title{Revisão de programação no R} +\subtitle{Estruturas de controle e funções} +\date{\small{ \Sexpr{sprintf('Atualizado em %s', Sys.Date())}}} + +%----------------------------------------------------------------------- + +\begin{document} + +{\setbeamertemplate{footline}{} + \frame{\titlepage} %-------------------------------------------------- +} + +\begin{frame}{} + + {\large Justificativas} + + \begin{itemize} + \item Um computador é uma máquina de propósito geral. A programação dá + a ela um proprósito específico. + \item O propósito de programar é automatizar processos. + \item A linguagem R é considerada a lingua franca da Estatística. + \end{itemize} + + {\large Objetivos} + + \begin{itemize} + \item Relembrar os fundamentos de programação em R. + \item Rever as estruturas de controle. + \item Rever a definição e uso de funções. + \item Resolver estudos de caso. + \end{itemize} +\end{frame} + +%----------------------------------------------------------------------- +\begin{frame}[fragile, allowframebreaks]{Estruturas de controle} + + \begin{minipage}[t]{0.55\linewidth} + + {\large Operadores relacionais} + +\begin{verbatim} +| Relação | Operador | Emprego | +|---------------+----------+---------| +| Igual | == | 5 == 3 | +| Diferente | != | 5 != 3 | +| Menor | < | 5 < 3 | +| Menor e igual | <= | 5 <= 3 | +| Maior | > | 5 > 3 | +| Maior e igual | >= | 5 >=3 | +\end{verbatim} + + {\large Operadores lógicos} + +\begin{verbatim} +| Condição | Operador | Emprego | +|----------+----------+-----------------| +| E | && | x > 10 && y > 0 | +| OU | || | x > 10 || y < 0 | +| NÃO | ! | !(x > 10) | +\end{verbatim} + + \end{minipage} + \begin{minipage}[t]{0.44\linewidth} + + Atenção! + + \begin{itemize} + \item \texttt{\&} e \texttt{|} são vetoriais. + \item \texttt{\%in\%} é o operador pertence. + \item Na dúvida sobre precedência de operações, use \texttt{()}. + \end{itemize} + \end{minipage} + + \framebreak %------------------------------ + + {\large Estruturas condicionais (if)} + + \begin{minipage}[t]{0.47\linewidth} + <<eval = FALSE>>= + # Apenas uma condição. + if (<condition>) { + <statments if TRUE> + } + @ + + <<eval = FALSE>>= + # Condição e seu complementar. + if (<condition>) { + <statments if TRUE> + } else { + <statments if FALSE> + } + @ + \end{minipage} + \hspace{1em} + \begin{minipage}[t]{0.47\linewidth} + <<eval = FALSE>>= + # Condições em cadeia. + if (<condition>) { + <statments if TRUE> + } else if (<condition>) { + <statments if FALSE and TRUE> + } else { + <statments if FALSE and FALSE> + } + @ + \end{minipage} + + \framebreak %------------------------------ + + {\large Laço iterador (for)} + + <<eval = FALSE>>= + for (<variable> in <set>) { + <statments> + } + @ + + \begin{itemize} + \item A interação é sobre elementos de vetores e listas. + \item \texttt{break} e \texttt{next} são usados para interromper e + saltar ciclos. + \item Jamais cresca uma vetor/lista durante um loop! + \end{itemize} + + \framebreak %------------------------------ + + {\large Laço iterador com condional (while)} + + <<eval = FALSE>>= + while (<condition>) { + <statments while TRUE> + } + @ + + \begin{itemize} + \item \texttt{break} e \texttt{next} podem ser usados. + \item Cuidado com loops sem condições de parada (loops infinitos). + \end{itemize} + + \begin{block}{Pergunta} + \begin{enumerate} + \item Quando usar \texttt{for} e \texttt{while}? + \item Qual dos dois é mais geral? + \end{enumerate} + \end{block} + + \framebreak %------------------------------ + + {\large Laço de repetição com condional (repeat)} + + {\large Estrutura de casos (switch)} + +\end{frame} + +\end{document}