{"id":22940624,"url":"https://github.com/yapeansa/simulacao_fila","last_synced_at":"2025-04-01T20:36:18.700Z","repository":{"id":266866270,"uuid":"899563121","full_name":"yapeansa/simulacao_fila","owner":"yapeansa","description":"Trabalho Simulação Fila","archived":false,"fork":false,"pushed_at":"2025-01-24T11:08:44.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T13:26:50.374Z","etag":null,"topics":["c","data-structures","queue"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yapeansa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-06T14:24:28.000Z","updated_at":"2025-01-24T11:08:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"f31ca688-3d46-4687-8027-9a0d33a86c0a","html_url":"https://github.com/yapeansa/simulacao_fila","commit_stats":null,"previous_names":["yapeansa/simulacao_fila"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yapeansa%2Fsimulacao_fila","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yapeansa%2Fsimulacao_fila/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yapeansa%2Fsimulacao_fila/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yapeansa%2Fsimulacao_fila/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yapeansa","download_url":"https://codeload.github.com/yapeansa/simulacao_fila/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709936,"owners_count":20821298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","data-structures","queue"],"created_at":"2024-12-14T13:29:55.685Z","updated_at":"2025-04-01T20:36:18.683Z","avatar_url":"https://github.com/yapeansa.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simulação de Filas\n\nSimulação de Filas: Modificar o código pegando os parâmetros do problema (probabilidades). Gerar dados em arquivo (para importação para planilha e fazer gráficos) sobre tempo de atendimento, ocorrências de fila cheia e número de clientes atendidos. A seguir está um resumo das implementações feitas no código base do trabalho.\n\n## Função Principal `main()`\n\nInicialmente pede-se ao usuário dois parâmetros, sendo o primeiro relativo ao sorteio do tempo de chagada do cliente (de 1 até 10) e o segundo relativo ao sorteio do tempo de atendimento para os clientes (de 0 até 10).\n\nEm seguida, iniciamos um loop que será executado até que haja 0 ocorrências de fila cheia em alguma fila. Cada iteração desse loop é referente à uma fila específica e para cada uma delas é gerado um arquivo para o registro das informações. Além disso, o loop estabelece as condições iniciais para uma fila, envolvendo as funções `initFila()`, `initGuiche()`, e variáveis para tempo, contagem de fila cheia e contagem de tempo de atendimento de clientes.\n\nLogo em seguida, no interior do loop anterior, inicia-se um novo loop. Esse novo loop, que representa a fila, é executado do tempo 0 até o tempo 100. A cada tempo t, duas funções são executadas: `trataCliente()` e `trataGuiche()`. A função trataCliente() recebe dois parâmetros: a fila e o parâmetro fornecido pelo usuário para o sorteio da chegada de clientes. Já a função trataGuiche(), recebe três parâmetros: o guichê, a fila e um parâmetro fornecido pelo usuário para sorteio do tempo de atendimento. Além disso, imprime-se na tela informações como tempo e os elementos a fila. Após o loop, escreve-se em arquivo informações sobre o número de atendimentos para determinada fila e a contagem de ocorrências de fila cheia. Além disso, o arquivo é fechado e libera-se a memória que foi alocada para o guichê e para a fila.\n\n## Função `initFila()`\n\nA função initFila() recebe por parâmetro a fila (por referência). Esta função é responsável por alocar memória dinâmicamente para a fila e inicializá-la, isto é, inicializa o campo `fim` com o valor 0.\n\n## Função `initGuiche()`\n\nA função initGuiche() recebe por parâmetro o guichê (também por referência). Então a memória é alocada dinamicamente para o guichê e os campos `atendimentos` e `ocupado` são ambos inicializados com o valor 0.\n\n## Função `trataCliente()`\n\nA função trataCliente() é responsável por sortear a chegada de clientes...\n\n## Função `trataGuiche()`\n\nEsta função é responsável pelo atendimento aos clientes. Ela pega um elemento da fila toda vez que a mesma está não vazia. Quando um cliente é atendido, é sorteado um tempo de atendimento para o mesmo (variando de um mínimo 2 até um máximo 10, dependendo do parâmetro fornecido pelo usuário), e o tempo de atendimento começa a ser cronometrado por meio de uma varivável (contador).\n\n## `liberaFila()`\n\nPrecisamos liberar a memória alocada dinamicamente para cada fila na execução do primeiro loop da função principal. Desta forma, a função liberaFila() recebe como parâmetro a fila para que a memória seja desalocada.\n\n## `liberaGuiche()`\n\nDo mesmo modo precisamos deslocar a memória alocada para o guichê. A função em questão recebe como parâmetro o guichê para a memória seja liberada.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyapeansa%2Fsimulacao_fila","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyapeansa%2Fsimulacao_fila","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyapeansa%2Fsimulacao_fila/lists"}