Compare commits

..

4 Commits

Author SHA1 Message Date
Tiago Garcia 356e7c9055
[AC2] Aula04 Part1
Signed-off-by: TiagoRG <tiago.rgarcia@ua.pt>
2024-03-06 01:25:46 +00:00
Tiago Garcia 6de8af17a4
[AC2] Add COMPILED stuff to gitignore
Signed-off-by: TiagoRG <tiago.rgarcia@ua.pt>
2024-03-05 23:07:23 +00:00
Tiago Garcia b0b31001fb
[MD] stuff
Signed-off-by: TiagoRG <tiago.rgarcia@ua.pt>
2024-03-05 22:41:44 +00:00
Tiago Garcia 8078087938
[AC2] Aula02 Finished
Signed-off-by: TiagoRG <tiago.rgarcia@ua.pt>
2024-03-05 22:41:15 +00:00
37 changed files with 535 additions and 5 deletions

6
.gitignore vendored
View File

@ -26,3 +26,9 @@
# QEMU Virtual Hard Disks
/**/*.qcow2
# MIPS compiled
/**/*.hex
/**/*.elf
/**/*.map
/**/*.o

Binary file not shown.

View File

@ -0,0 +1,292 @@
\part{Lógica de Primeira Ordem e Demonstração Automática}
\label{part:1lpo}
\chapter{Interpretação}
\label{chap:1-interpretacao}
\section{Proposição}
\label{sec:1-interpretacao-proposicao}
\subsection{Definição}
São proposições as afirmações que podem ser classificadas como verdadeiras ou falsas mas não ambas.
\subsection{Exemplos}
\begin{enumerate}
\item O sol é uma estrela.
\item Deus existe.
\item D. Pedro I foi o primeiro imperador do Brasil.
\end{enumerate}
Afirmações com o seu valor lógico:
\begin{enumerate}
\item Para todo o $n \in N$, $2n$ é múltiplo de $2$. $\rightarrow$ Proposição \textbf{Verdadeira}.
\item Para todo o $n \in Z$, $2n \geq n$. $\rightarrow$ Afirmação \textbf{Ambígua}: \textbf{Verdadeira} para $n > 0$ e \textbf{Falsa} para $n \leq 0$.
\item Para todo o $n \in N$, $3n \geq 4n$. $\rightarrow$ Proposição \textbf{False}.
\end{enumerate}
\subsection{Tipos de Proposições}
\begin{itemize}
\item \textbf{Atómica}: Não pode ser decomposta em proposições mais simples.
\item \textbf{Composta}: É formada a partir da combinação de proposições atómicas usando conectivos lógicos.
\end{itemize}
\section{Conectivos Lógicos}
\label{sec:1-interpretacao-conectivos}
\subsection{Negação}
\subsubsection{Símbolo}
O símbolo da negação é $\neg$.
\subsubsection{Tabela de Verdade}
\begin{table}[H]
\begin{tabular}{|c|c|}
\hline
$p$ & $\neg p$ \\
\hline
1 & 0 \\
0 & 1 \\
\hline
\end{tabular}
\end{table}
\subsection{Conjunção}
\subsubsection{Símbolo}
O símbolo da conjunção é $\land$.
\subsubsection{Tabela de Verdade}
\begin{table}[H]
\begin{tabular}{|c|c|c|}
\hline
$p$ & $q$ & $p \land q$ \\
\hline
1 & 1 & 1 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 0 \\
\hline
\end{tabular}
\end{table}
\subsection{Disjunção}
\subsubsection{Símbolo}
O símbolo da conjunção é $\lor$.
\subsubsection{Tabela de Verdade}
\begin{table}[H]
\begin{tabular}{|c|c|c|}
\hline
$p$ & $q$ & $p \lor q$ \\
\hline
1 & 1 & 1 \\
1 & 0 & 1 \\
0 & 1 & 1 \\
0 & 0 & 0 \\
\hline
\end{tabular}
\end{table}
\subsection{Implicação}
\subsubsection{Símbolo}
O símbolo da conjunção é $\rightarrow$.
\subsubsection{Tabela de Verdade}
\begin{table}[H]
\begin{tabular}{|c|c|c|}
\hline
$p$ & $q$ & $p \rightarrow q$ \\
\hline
1 & 1 & 1 \\
1 & 0 & 1 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\hline
\end{tabular}
\end{table}
\subsection{Equivalência}
\subsubsection{Símbolo}
O símbolo da conjunção é $\leftrightarrow$.
\subsubsection{Tabela de Verdade}
\begin{table}[H]
\begin{tabular}{|c|c|c|}
\hline
$p$ & $q$ & $p \leftrightarrow q$ \\
\hline
1 & 1 & 1 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\hline
\end{tabular}
\end{table}
\subsection{Exemplos}
\subsubsection{Exemplo 1}
Ou o José foi ao supermercado ou está sem ovos em casa.
\begin{itemize}
\item $\phi$ = "O José foi ao supermercado"
\item $\psi$ = "O José está sem ovos em casa"
\end{itemize}
\textbf{Resultado}: $\phi \lor \psi$
\subsubsection{Exemplo 2}
A Beatriz decidiu emigrar e não tenciona regressar.
\begin{itemize}
\item $\phi$ = "A Beatriz decidiu emigrar"
\item $\psi$ = "A Beatriz não tenciona regressar"
\end{itemize}
\textbf{Resultado}: $\phi \land \psi$
\subsubsection{Exemplo 3}
Ou o meu pai está em casa e a minha mãe não ou o meu pai não está em casa mas a minha mão está.
\begin{itemize}
\item $\phi$ = "O meu pai está em casa"
\item $\psi$ = "A minha mão não está em casa"
\end{itemize}
\textbf{Resultado}: $(\psi \land \neg \phi) \lor (\neg \psi \land \phi)$
\subsubsection{Exemplo 4}
Ficarei milionário se ganhar o euromilhões
\begin{itemize}
\item $\phi$ = "Ficar milionário"
\item $\psi$ = "Ganhar o euromilhões"
\end{itemize}
\textbf{Resultado}: $\psi \rightarrow \phi$
\section{Validade de Fórmulas}
\subsection{Tautologia}
\subsubsection{Definição}
Uma fórmula diz-se \textbf{Tautologia} quando tem valor lógico \textbf{1} para todas as suas interpretações.
Representa-se com $\top$.
\subsubsection{Exemplos}
\begin{enumerate}
\item $\neg \psi \lor \psi$
\item $(\psi \land \phi) \rightarrow \psi$
\end{enumerate}
\begin{table}[H]
\begin{tabular}{|c|c|c|c|}
\hline
$p$ & $q$ & $p \land q$ & $(p \land q) \rightarrow q$ \\
\hline
0 & 0 & 0 & 1 \\
0 & 1 & 0 & 1 \\
1 & 0 & 0 & 1 \\
1 & 1 & 1 & 1 \\
\hline
\end{tabular}
\end{table}
\subsection{Consistente}
\subsubsection{Definição}
Uma fórmula diz-se \textbf{Consistente} quando tem valor lógico \textbf{1} para alguma das suas interpretações.
\subsection{Inconsistente ou Contradição}
\subsubsection{Definição}
Uma fórmula diz-se \textbf{Inconsistente} ou \textbf{Contradição} quando tem valor lógico \textbf{0} para todas as suas interpretações.
Representa-se com $\bot$.
\subsubsection{Exemplo}
\begin{enumerate}
\item $\neg \psi \land \psi$
\end{enumerate}
\section{Fórmulas Equivalentes}
\subsection{Definição}
As fórmulas $\phi$ e $\psi$ dizem-se equivalentes quando a fórmula $\phi \leftrightarrow \psi$ é uma tautologia.
\subsubsection{Demonstação}
\begin{table}[H]
\begin{tabular}{|c|c|c||c|c|c|}
\hline
$p$ & $q$ & $p \rightarrow q$ & $\neg p$ & $\neg p \lor q$ & $(p \rightarrow q) \leftrightarrow (\neg p \lor q)$ \\
\hline
0 & 0 & 1 & 1 & 1 & 1 \\
0 & 1 & 1 & 1 & 1 & 1 \\
1 & 0 & 0 & 0 & 0 & 1 \\
1 & 1 & 1 & 0 & 1 & 1 \\
\hline
\end{tabular}
\end{table}
\subsection{Exemplos}
\noindent Equivalências:
\begin{enumerate}
\item $p \land q \equiv q \land p$
\item $p \lor q \equiv q \lor p$
\item $p \land (q \land r) \equiv (p \land q) \land r$
\item $p \lor (q \lor r) \equiv (p \lor q) \lor r$
\item $p \land p \equiv p$
\item $p \lor p \equiv p$
\item $p \land \top \equiv p$
\item $p \lor \top \equiv \top$
\item $p \land \bot \equiv \bot$
\item $p \lor \bot \equiv p$
\end{enumerate}
Distributividade:
\begin{enumerate}
\item $p \land (q \lor r) \equiv (p \land q) \lor (p \land r)$
\item $p \lor (q \land r) \equiv (p \lor q) \land (p \lor r)$
\end{enumerate}
Leis de Morgan:
\begin{enumerate}
\item $\neg (p \land q) \equiv \neg p \lor \neg q$
\item $\neg (p \lor q) \equiv \neg p \land \neg q$
\end{enumerate}
Contraposição e dupla negação:
\begin{enumerate}
\item $p \rightarrow q \equiv \neg q \rightarrow \neg p$
\item $p \rightarrow q \equiv \neg p \lor q$
\item $\neg \neg p \equiv p$
\end{enumerate}
\section{Formas Normais}
\label{sec:1-interpretacao-formas-normais}
\subsection{Literais}
\subsubsection{Definição}
Um literal é uma proposição atómica ou a negação de uma proposição atómica.
\subsubsection{Exemplos}
\begin{enumerate}
\item $p$, $q$, $\neg r$ são literais.
\item $\neg \neg p$, $p \rightarrow q$ não são literais.
\end{enumerate}
\subsection{Forma Normal Conjuntiva (FNC)}
Uma fórmula está na \textbf{Forma Normal Conjuntiva} se é uma conjunção de disjunção de literais.
\subsection{Forma Normal Disjuntiva (FND)}
Uma fórmula está na \textbf{Forma Normal Disjuntiva} se é uma disjunção de conjunções de literais.
\subsection{Exemplos}
\begin{enumerate}
\item $p \land q \land \neg r$ está na FNC e na FND.
\item $(p \lor \neg q) \land (q \lor r)$ está na FNC.
\item $(p \land \neg q) \lor (q \land r)$ está na FND.
\item $(p \land q) \lor (p \land \neg q) \lor (q \land r)$ não está na FNC nem na FND.
\end{enumerate}

View File

@ -0,0 +1,3 @@
\part{Princípios de Enumeração Combinatória}
\label{prt:2pec}

View File

@ -0,0 +1,3 @@
\part{Agrupamentos e Identidades Combinatórias}
\label{prt:3aic}

View File

@ -0,0 +1,3 @@
\part{Recorrência e Funções Geradoras}
\label{prt:4rfg}

View File

@ -0,0 +1,3 @@
\part{Elementos de Teoria dos Grafos}
\label{prt:5etg}

View File

@ -0,0 +1,11 @@
.PHONY: all compile clean
all: compile clean
compile: main.tex
pdflatex main.tex
pdflatex main.tex
mv main.pdf ../md-tiagorg.pdf
clean:
rm -f *.aux *.blg *.bbl *.toc *.log *.lof *.lot *.log.xml *.bcf *.out *.run.xml *.gz

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

View File

@ -0,0 +1,98 @@
%! Author = TiagoRG
%! GitHub = https://github.com/TiagoRG
\documentclass[15pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[portuguese]{babel}
\usepackage[printonlyused]{acronym}
\usepackage[hidelinks]{hyperref}
\usepackage{graphicx}
\usepackage{indentfirst}
\usepackage{float}
\usepackage{fancyhdr}
\usepackage{geometry}
\usepackage{titlesec}
\usepackage{titletoc}
\usepackage{tocloft}
\usepackage{listings}
\usepackage{array}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{enumitem}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{setspace}
\renewcommand{\familydefault}{\sfdefault}
\geometry{
paper=a4paper,
margin=45pt,
includefoot
}
\setcounter{tocdepth}{1}
\begin{document}
%%%%%% CAPA %%%%%%
\begin{titlepage}
\begin{center}
\vspace*{60pt}
{\fontsize{10\textwidth}{0}\selectfont{\textbf{MATEMÁTICA\\\vspace*{10pt}DISCRETA\\}}}
\vspace*{40pt}
\Huge
\textbf{Tiago Rocha Garcia}\\
\vspace*{20pt}
\Large
\textbf{\href{mailto:tiago.rgarcia@ua.pt}{tiago.rgarcia@ua.pt}}\\
\vspace*{5pt}
\textbf{\href{https://tiagorg.pt}{https://tiagorg.pt}}\\
\vspace*{30pt}
\huge
\textbf{2023/2024}\\
\vspace*{200pt}
\includegraphics[width=0.2\textwidth]{images/ua}\\
\vspace*{10pt}
\huge
\textbf{Universidade de Aveiro}\\
\end{center}
\end{titlepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.1pt}
\fancypagestyle{plain}{
\fancyhf{}% Clear header/footer
\fancyfoot[L]{Matemática Discreta\\Universidade de Aveiro\\2023/2024}
\fancyfoot[C]{\\{\huge\thepage}}
\fancyfoot[R]{Tiago Garcia\\\href{https://tiagorg.pt}{https://tiagorg.pt}\\\href{mailto:tiago.rgarcia@ua.pt}{tiago.rgarcia@ua.pt}}
}
\pagestyle{plain}
\renewcommand{\thepart}{Capítulo \arabic{part}}
\titleformat{\part}[display]{\bfseries\centering}{\Huge\thepart}{2em}{\Huge}
\renewcommand{\thechapter}{Tópico \arabic{chapter}}
\titleformat{\chapter}[display]{\bfseries}{\LARGE\thechapter}{1em}{\huge}
\dottedcontents{chapter}[7.2em]{\bfseries\vspace{0.6em}}{5em}{0.65pc}
\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}}
\titleformat{\section}[block]{\bfseries}{\Large\thesection}{1em}{\Large}
\dottedcontents{section}[9.2em]{\vspace{0.6em}}{2em}{0.65pc}
\renewcommand{\contentsname}{Índice}
\tableofcontents
%\listoftables % descomentar se necessário
%\listoffigures % descomentar se necessário
\input{1lpo}
\input{2pec}
\input{3aic}
\input{4rfg}
\input{5etg}
\chapter*{Acrónimos}
\begin{acronym}
\end{acronym}
\end{document}

View File

@ -0,0 +1,23 @@
.equ READ_CORE_TIMER, 11
.equ RESET_CORE_TIMER, 12
.data
.text
timedone:
li $t0, 0
timedone_if:
blez $a1, timedone_else
li $v0, RESET_CORE_TIMER
syscall
j timedone_return
timedone_else:
li $v0, READ_CORE_TIMER
syscall
move $t1, $v0
mul $t2, $a0, 20000
ble $t1, $t2, timedone_return
div $t0, $t1, 20000
timedown_return:
move $v0, $t0
jr $ra

View File

@ -1,3 +1,4 @@
.equ INKEY, 1
.equ READ_CORE_TIMER, 11
.equ RESET_CORE_TIMER, 12
.equ PUT_CHAR, 3
@ -11,10 +12,12 @@
# cnt1: $s0
# cnt5: $s1
# cnt10: $s2
# factor: $s3
main: li $s0, 0
li $s1, 0
li $s2, 0
li $s3, 100
while: li $a0, '\r'
li $v0, PUT_CHAR
@ -49,21 +52,39 @@ while: li $a0, '\r'
li $v0, PRINT_INT
syscall
li $v0, INKEY
syscall
move $t0, $v0
beq $t0, 'A', increase_speed
beq $t0, 'N', decrease_speed
beq $t0, 'S', suspend
j continue
increase_speed:
div $s3, $s3, 2
j continue
decrease_speed:
li $s3, 100
j continue
suspend:
li $v0, INKEY
syscall
beq $v0, 'R', continue
j suspend
continue:
addu $sp, $sp, -4
sw $ra, 0($sp)
li $a0, 100
move $a0, $s3
jal delay
remi $t0, $s0, 10
rem $t0, $s2, 10
bnez $t0, ignore1
addi $s0, $s0, 1
li $s3, 0
ignore1:
remi $t0, $s1, 2
rem $t0, $s2, 2
bnez $t0, ignore5
addi $s1, $s1, 1
li $s4, 0
ignore5:
addi $s2, $s2, 1

Binary file not shown.

View File

@ -0,0 +1,23 @@
#include <detpic32.h>
void delay(int ms) {
resetCoreTimer();
while (readCoreTimer() < ms * 20000);
}
int main() {
// Configure RB14 as output
TRISCbits.TRISC14 = 0;
while (1) {
// Wait 0.5s
delay(500);
// Update value
LATCbits.LATC14 = !LATCbits.LATC14;
// Print current value
printStr("RB14: ");
printInt10(LATCbits.LATC14);
putChar('\r');
}
}

View File

@ -0,0 +1,22 @@
#include <detpic32.h>
void delay(int ms) {
resetCoreTimer();
while (readCoreTimer() < ms * 20000);
}
int main() {
// Configure RE6-RE3 as output
TRISE = TRISE & 0xFF87;
// Initialize the counter
unsigned int counter = 0;
while (1) {
// Update value
LATE = (LATE & 0xFF87) // Reset bits 6-3
| counter << 3; // Merge with counter
delay(460);
counter = (counter + 1) % 10;
}
}

View File

@ -0,0 +1,22 @@
#include <detpic32.h>
void delay(int ms) {
resetCoreTimer();
while (readCoreTimer() < ms * 20000);
}
int main() {
// Configure RE6-RE3 as output
TRISE = TRISE & 0xFF87;
// Initialize the counter
unsigned int counter = 0;
while (1) {
// Update value
LATE = (LATE & 0xFF87) // Reset bits 6-3
| counter << 3; // Merge with counter
delay(370);
counter = (counter + 9) % 10;
}
}