---
# System prepended metadata

title: Modelo epidemiológicos / Epidemic model

---

# Modelo epidemiológicos / Epidemic model
Projeto final da disciplina de Introdução as técnicas de programação. 

/ 

Final project of the discipline Introduction to Programming Techniques.

### Propósito / Purpose
São utilizados para a compreensão da dinâmica de uma epidemia ou afim, e são,portanto,ferramentas essenciais na determinação de políticas públicas para combate e prevenção de doenças 
- [x] 
/ 

They are used to understand the dynamics of an epidemic or the like, and are therefore essential tools in determining public policies for combating and preventing diseases

### Modo de Uso / Way of using
Primeiro de tudo, devemos compilar os arquivos que serão utilizados, para isso rode no terminal o comando.

/


First of all, we must compile the files that will be used, for that run the command in the terminal.

`` 
gcc main.c -o epidemic
``

O próximo passo é executar o binário fruto da compilação.

/ 


The next step is to run the compilation binary.

`` 
./epidemic
``



## Struct
`` 
typedef struct
{
    double S, I, R, tempo, b, h, k;
} Dado;
``

## Alocação
Em cima dos números de dias será alocado o tamanho
``
Dado* criarDado(double tempo)
{
    Dado* dado = malloc(sizeof(Dado));
    dado->tempo = tempo; 
    return dado;
}
``

## Functions

### Facilidade de contágio
Inputs:
output:

`` 
double facilidadeDeContagio(int N_b, int T_b, int S_b, int I_b) 
{ 
    return (N_b / ((double)(T_b * S_b * I_b)));
} 
``

### Probabilidade de cura

``
double probabilidadeDeCura(int m_k, int n_k, int T_k) 
{ 
    return (m_k / ((double)(n_k * T_k)));
}
``
### Calculo de Suceptível

``
double calcSuscetivel(Dado* d)
{
    double oldS, oldI;
    oldS = d->S;
    oldI = d->I;
    return (oldS - (d->h * d->b * oldS * oldI));
}
``
### Infectado
``
double calcInfectado(Dado* d)
{
    double oldS, oldI;
    oldS = d->S;
    oldI = d->I;
    return (oldI + (d->h * ((d->b * oldS * oldI) - (d->k * oldI))));
}
``

## Crescimento

temos uma função onde aproveita os dados que vai crescendo

``
void calcDado(Dado* d)
{
    Dado* novoDado = criarDado(d->tempo + d->h);
    novoDado->S = calcSuscetivel(d);
    novoDado->I = calcInfectado(d);
    novoDado->R = calcRemovido(d);
    d->S = novoDado->S;
    d->I = novoDado->I;
    d->R = novoDado->R;
    d->tempo = novoDado->tempo; 
}
``