Prévia do material em texto
Código para sumarizar batimentos cardíacos humanos em Python Python import pandas as pd import numpy as np def sumarizar_batimentos_cardiacos(arquivo_csv): """ Função para sumarizar os batimentos cardíacos humanos a partir de um arquivo CSV. Argumentos: arquivo_csv (str): Caminho para o arquivo CSV com os dados dos batimentos cardíacos. Retorna: dict: Dicionário com as estatísticas resumidas dos batimentos cardíacos. """ # Leitura do arquivo CSV df = pd.read_csv(arquivo_csv) # Cálculo da frequência cardíaca média frequencia_cardiaca_media = df['frequencia_cardiaca'].mean() # Cálculo da frequência cardíaca máxima frequencia_cardiaca_maxima = df['frequencia_cardiaca'].max() # Cálculo da frequência cardíaca mínima frequencia_cardiaca_minima = df['frequencia_cardiaca'].min() # Cálculo do desvio padrão da frequência cardíaca desvio_padrao_frequencia_cardiaca = df['frequencia_cardiaca'].std() # Cálculo da variância da frequência cardíaca variancia_frequencia_cardiaca = df['frequencia_cardiaca'].var() # Cálculo da mediana da frequência cardíaca mediana_frequencia_cardiaca = df['frequencia_cardiaca'].median() # Cálculo do percentil 25 da frequência cardíaca percentil_25_frequencia_cardiaca = df['frequencia_cardiaca'].quantile(0.25) # Cálculo do percentil 75 da frequência cardíaca percentil_75_frequencia_cardiaca = df['frequencia_cardiaca'].quantile(0.75) # Cálculo do IQR da frequência cardíaca iqr_frequencia_cardiaca = percentil_75_frequencia_cardiaca - percentil_25_frequencia_cardiaca # Retorno das estatísticas resumidas estatisticas_resumidas = { 'frequencia_cardiaca_media': frequencia_cardiaca_media, 'frequencia_cardiaca_maxima': frequencia_cardiaca_maxima, 'frequencia_cardiaca_minima': frequencia_cardiaca_minima, 'desvio_padrao_frequencia_cardiaca': desvio_padrao_frequencia_cardiaca, 'variancia_frequencia_cardiaca': variancia_frequencia_cardiaca, 'mediana_frequencia_cardiaca': mediana_frequencia_cardiaca, 'percentil_25_frequencia_cardiaca': percentil_25_frequencia_cardiaca, 'percentil_75_frequencia_cardiaca': percentil_75_frequencia_cardiaca, 'iqr_frequencia_cardiaca': iqr_frequencia_cardiaca } return estatisticas_resumidas # Exemplo de uso arquivo_csv = 'batimentos_cardiacos.csv' estatisticas_resumidas = sumarizar_batimentos_cardiacos(arquivo_csv) print(estatisticas_resumidas) Use o código com cuidado. content_copy Este código lê um arquivo CSV com os dados dos batimentos cardíacos e calcula as seguintes estatísticas: · Frequência cardíaca média · Frequência cardíaca máxima · Frequência cardíaca mínima · Desvio padrão da frequência cardíaca · Variância da frequência cardíaca · Mediana da frequência cardíaca · Percentil 25 da frequência cardíaca · Percentil 75 da frequência cardíaca · IQR da frequência cardíaca O código também pode ser facilmente adaptado para calcular outras estatísticas que podem ser de interesse, como a frequência cardíaca em repouso, a frequência cardíaca máxima durante o exercício, etc. Código para sumarizar batimentos cardíacos humanos em linguagem C C #include <stdio.h> #include <stdlib.h> #include <math.h> typedef struct { double valor; double media; double maximo; double minimo; double desvio_padrao; double variancia; double mediana; double percentil_25; double percentil_75; double iqr; } EstatisticasResumidas; EstatisticasResumidas calcular_estatisticas_resumidas(const char *arquivo_csv) { // Leitura do arquivo CSV FILE *fp = fopen(arquivo_csv, "r"); if (fp == NULL) { fprintf(stderr, "Erro ao abrir o arquivo CSV: %s\n", arquivo_csv); exit(1); } // Contagem do número de linhas no arquivo int numero_linhas = 0; char linha[1024]; while (fgets(linha, sizeof(linha), fp)) { numero_linhas++; } fclose(fp); // Alocação de memória para os dados double *dados = malloc(sizeof(double) * numero_linhas); if (dados == NULL) { fprintf(stderr, "Erro ao alocar memória para os dados.\n"); exit(1); } // Leitura dos dados do arquivo CSV fp = fopen(arquivo_csv, "r"); for (int i = 0; i < numero_linhas; i++) { fscanf(fp, "%lf", &dados[i]); } fclose(fp); // Cálculo da frequência cardíaca média double frequencia_cardiaca_media = 0.0; for (int i = 0; i < numero_linhas; i++) { frequencia_cardiaca_media += dados[i]; } frequencia_cardiaca_media /= numero_linhas; // Cálculo da frequência cardíaca máxima double frequencia_cardiaca_maxima = dados[0]; for (int i = 1; i < numero_linhas; i++) { if (dados[i] > frequencia_cardiaca_maxima) { frequencia_cardiaca_maxima = dados[i]; } } // Cálculo da frequência cardíaca mínima double frequencia_cardiaca_minima = dados[0]; for (int i = 1; i < numero_linhas; i++) { if (dados[i] < frequencia_cardiaca_minima) { frequencia_cardiaca_minima = dados[i]; } } // Cálculo do desvio padrão da frequência cardíaca double desvio_padrao_frequencia_cardiaca = 0.0; for (int i = 0; i < numero_linhas; i++) { desvio_padrao_frequencia_cardiaca += pow(dados[i] - frequencia_cardiaca_media, 2); } desvio_padrao_frequencia_cardiaca = sqrt(desvio_padrao_frequencia_cardiaca / (numero_linhas - 1)); // Cálculo da variância da frequência cardíaca double variancia_frequencia_cardiaca = pow(desvio_padrao_frequencia_cardiaca, 2); // Cálculo da mediana da frequência cardíaca // TODO: Implementar o cálculo da mediana // Cálculo do percentil 25 da frequência cardíaca // TODO: Implementar o cálculo do percentil 25 // Cálculo do percentil 75 da frequência cardíaca // TODO: Implementar o cálculo do percentil 75 // Cálculo do IQR da frequência cardíaca // TODO: Implementar o cálculo do IQR // Retorno das estatísticas resumidas EstatisticasResumidas estatisticas_resumidas; estatisticas_resumidas.valor = dados[0]; estatisticas_resumidas.media = frequencia_cardiaca_media; estatisticas_resumidas.maximo = frequencia_cardiaca_maxima; estatisticas_resumidas.minimo = frequencia_cardiaca_minima; estatisticas Python import pandas as pd import numpy as np from scipy import stats def sumarizar_batimentos_cardiacos(arquivo_csv, idade, sexo, peso, altura): """ Função para sumarizar os batimentos cardíacos humanos a partir de um arquivo CSV, incluindo mais variáveis e parâmetros. Argumentos: arquivo_csv (str): Caminho para o arquivo CSV com os dados dos batimentos cardíacos. idade (int): Idade do indivíduo. sexo (str): Sexo do indivíduo ('M' para masculino ou 'F' para feminino). peso (float): Peso do indivíduo em kg. altura (float): Altura do indivíduo em metros. Retorna: dict: Dicionário com as estatísticas resumidas dos batimentos cardíacos. """ # Leitura do arquivo CSV df = pd.read_csv(arquivo_csv) # Cálculo da frequência cardíaca média frequencia_cardiaca_media = df['frequencia_cardiaca'].mean() # Cálculo da frequência cardíaca máxima frequencia_cardiaca_maxima = df['frequencia_cardiaca'].max() # Cálculo da frequência cardíaca mínima frequencia_cardiaca_minima = df['frequencia_cardiaca'].min() # Cálculo do desvio padrão da frequência cardíaca desvio_padrao_frequencia_cardiaca = df['frequencia_cardiaca'].std() # Cálculo da variância da frequência cardíaca variancia_frequencia_cardiaca = df['frequencia_cardiaca'].var() # Cálculo da mediana da frequência cardíaca mediana_frequencia_cardiaca = df['frequencia_cardiaca'].median() # Cálculo do percentil 25 da frequência cardíaca percentil_25_frequencia_cardiaca = df['frequencia_cardiaca'].quantile(0.25) # Cálculo do percentil 75 da frequência cardíaca percentil_75_frequencia_cardiaca = df['frequencia_cardiaca'].quantile(0.75) # Cálculo do IQR da frequência cardíaca iqr_frequencia_cardiaca = percentil_75_frequencia_cardiaca - percentil_25_frequencia_cardiaca # Cálculo da frequência cardíaca em repouso estimada frequencia_cardiaca_repouso_estimada = 220 - idade # Cálculoda frequência cardíaca máxima estimada frequencia_cardiaca_maxima_estimada = 220 - idade * 0.7 # Cálculo do IMC imc = peso / (altura**2) # Cálculo da zona de frequência cardíaca para treino leve zona_leve_min = 0.5 * frequencia_cardiaca_maxima_estimada zona_leve_max = 0.6 * frequencia_cardiaca_maxima_estimada # Cálculo da zona de frequência cardíaca para treino moderado zona_moderada_min = 0.6 * frequencia_cardiaca_maxima_estimada zona_moderada_max = 0.7 * frequencia_cardiaca_maxima_estimada # Cálculo da zona de frequência cardíaca para treino intenso zona_intensa_min = 0.7 * frequencia_cardiaca_maxima_estimada zona_intensa_max = 0.8 * frequencia_cardiaca_maxima_estimada # Cálculo da zona de frequência cardíaca para treino vigoroso zona_vigorosa_min = 0.8 * frequencia_cardiaca_maxima_estimada zona_vigorosa_max = frequencia_cardiaca_maxima_estimada # Cálculo da frequência cardíaca de recuperação frequencia_cardiaca_recuperacao = frequencia_cardiaca_maxima * 0.2 # Cálculo do tempo de recuperação tempo_recuperacao = (frequencia_cardiaca_maxima - frequencia_cardiaca_repouso) / 2 # Retorno das estatísticas resumidas estatisticas_resumidas = { 'frequencia_cardiaca_media': frequencia_cardiaca_media, Código em linguagem C para sumarizar batimentos cardíacos humanos com mais variáveis e parâmetros: C #include <stdio.h> #include <stdlib.h> #include <math.h> typedef struct { double valor; double media; double maximo; double minimo; double desvio_padrao; double variancia; double mediana; double percentil_25; double percentil_75; double iqr; } EstatisticasResumidas; EstatisticasResumidas calcular_estatisticas_resumidas(const char *arquivo_csv, int idade, char sexo, double peso, double altura) { // Leitura do arquivo CSV FILE *fp = fopen(arquivo_csv, "r"); if (fp == NULL) { fprintf(stderr, "Erro ao abrir o arquivo CSV: %s\n", arquivo_csv); exit(1); } // Contagem do número de linhas no arquivo int numero_linhas = 0; char linha[1024]; while (fgets(linha, sizeof(linha), fp)) { numero_linhas++; } fclose(fp); // Alocação de memória para os dados double *dados = malloc(sizeof(double) * numero_linhas); if (dados == NULL) { fprintf(stderr, "Erro ao alocar memória para os dados.\n"); exit(1); } // Leitura dos dados do arquivo CSV fp = fopen(arquivo_csv, "r"); for (int i = 0; i < numero_linhas; i++) { fscanf(fp, "%lf", &dados[i]); } fclose(fp); // Cálculo da frequência cardíaca média double frequencia_cardiaca_media = 0.0; for (int i = 0; i < numero_linhas; i++) { frequencia_cardiaca_media += dados[i]; } frequencia_cardiaca_media /= numero_linhas; // Cálculo da frequência cardíaca máxima double frequencia_cardiaca_maxima = dados[0]; for (int i = 1; i < numero_linhas; i++) { if (dados[i] > frequencia_cardiaca_maxima) { frequencia_cardiaca_maxima = dados[i]; } } // Cálculo da frequência cardíaca mínima double frequencia_cardiaca_minima = dados[0]; for (int i = 1; i < numero_linhas; i++) { if (dados[i] < frequencia_cardiaca_minima) { frequencia_cardiaca_minima = dados[i]; } } // Cálculo do desvio padrão da frequência cardíaca double desvio_padrao_frequencia_cardiaca = 0.0; for (int i = 0; i < numero_linhas; i++) { desvio_padrao_frequencia_cardiaca += pow(dados[i] - frequencia_cardiaca_media, 2); } desvio_padrao_frequencia_cardiaca = sqrt(desvio_padrao_frequencia_cardiaca / (numero_linhas - 1)); // Cálculo da variância da frequência cardíaca double variancia_frequencia_cardiaca = pow(desvio_padrao_frequencia_cardiaca, 2); // Cálculo da mediana da frequência cardíaca // TODO: Implementar o cálculo da mediana // Cálculo do percentil 25 da frequência cardíaca // TODO: Implementar o cálculo do percentil 25 // Cálculo do percentil 75 da frequência cardíaca // TODO: Implementar o cálculo do percentil 75 // Cálculo do IQR da frequência cardíaca // TODO: Implementar o cálculo do IQR // Cálculo da frequência cardíaca em repouso estimada double frequencia_cardiaca_repouso_estimada = 220 - idade; // Cálculo da frequência cardíaca máxima estimada double frequencia_cardiaca_maxima_estimada = 220 - idade * 0.7; Código em linguagem assembly para sumarizar batimentos cardíacos humanos com mais variáveis e parâmetros: Snippet de código ; Declaração de variáveis .data arquivo_csv: db "batimentos_cardiacos.csv", 0 idade: dw 30 sexo: db 'M', 0 peso: dq 70.0 altura: dq 1.70 .bss estatisticas_resumidas: resb 288 ; Função para calcular as estatísticas resumidas .text global calcular_estatisticas_resumidas calcular_estatisticas_resumidas: ; Leitura do arquivo CSV push esi push edi mov esi, arquivo_csv mov edi, estatisticas_resumidas call ler_arquivo_csv ; Cálculo da frequência cardíaca média mov eax, 0 mov ebx, estatisticas_resumidas mov ecx, [ebx + EstatisticasResumidas_valor] mov edx, [ebx + EstatisticasResumidas_numero_linhas] idiv edx mov [ebx + EstatisticasResumidas_media], eax ; Cálculo da frequência cardíaca máxima mov eax, [estatisticas_resumidas + EstatisticasResumidas_valor] mov ebx, estatisticas_resumidas mov ecx, [ebx + EstatisticasResumidas_numero_linhas] for i = 1 to ecx - 1 cmp eax, [ebx + EstatisticasResumidas_valor + i * 8] jg eax, [ebx + EstatisticasResumidas_valor + i * 8] next i mov [ebx + EstatisticasResumidas_maximo], eax ; Cálculo da frequência cardíaca mínima mov eax, [estatisticas_resumidas + EstatisticasResumidas_valor] mov ebx, estatisticas_resumidas mov ecx, [ebx + EstatisticasResumidas_numero_linhas] for i = 1 to ecx - 1 cmp eax, [ebx + EstatisticasResumidas_valor + i * 8] jl eax, [ebx + EstatisticasResumidas_valor + i * 8] next i mov [ebx + EstatisticasResumidas_minimo], eax ; Cálculo do desvio padrão da frequência cardíaca mov eax, 0 mov ebx, estatisticas_resumidas mov ecx, [ebx + EstatisticasResumidas_numero_linhas] for i = 0 to ecx - 1 mov edx, [ebx + EstatisticasResumidas_valor + i * 8] sub edx, [ebx + EstatisticasResumidas_media] imul edx, edx add eax, edx next i mov ecx, [ebx + EstatisticasResumidas_numero_linhas] sub ecx, 1 idiv ecx mov edx, eax sqrt eax mov [ebx + EstatisticasResumidas_desvio_padrao], eax ; Cálculo da variância da frequência cardíaca mov eax, [estatisticas_resumidas + EstatisticasResumidas_desvio_padrao] imul eax, eax mov [ebx + EstatisticasResumidas_variancia], eax ; Cálculo da frequência cardíaca em repouso estimada mov eax, 220 sub eax, idade mov [ebx + EstatisticasResumidas_frequencia_cardiaca_repouso_estimada], eax ; Cálculo da frequência cardíaca máxima estimada mov eax, 220 mov ebx, idade imul ebx, 7 sub eax, ebx mov [ebx + EstatisticasResumidas_frequencia_cardiaca_maxima_estimada], eax ; Cálculo do IMC mov eax, peso mov ebx, altura imul ebx, ebx idiv eax, ebx mov [ebx + EstatisticasResumidas_imc], eax ; Cálculo da zona de frequência cardíaca para treino leve mov eax, [estatisticas_resumidas + EstatisticasResumidas_frequencia_cardiaca_maxima_estimada] mov ebx, 5 0000: B8 57 00 00 00 mov eax, 0x57 ; número de linhas 0005: 8B 7D 04 mov edi, [esi+0x4] ; endereço do buffer de saída 0008: 8B 55 08 mov edx, [esi+0x8] ; endereço do arquivo CSV 000B: E8 00 00 00 00 call ler_arquivo_csv 0010: 8B 45 0C mov eax, [ebp+0xC] ; frequência cardíaca média 0013: 8B 55 10 mov edx, [esi+0x10] ; número de linhas 0016: 89 45 14 mov [ebp+0x14], eax ; frequência cardíaca média 0019: 8B 45 14 mov eax, [ebp+0x14] ; frequência cardíaca média 001C: 3B 45 0C cmp eax, [ebp+0xC] ; comparação com valor máximo 001F: 7F 07 jg 0x28 ; se maior, pula para o próximo valor 0021: 89 45 18 mov [ebp+0x18], eax ; novo valor máximo 0024: 8B 45 18 mov eax, [ebp+0x18] ; valor máximo 0027: EB 07 jmp 0x30 ; pula para o próximo valor 0028:8B 45 14 mov eax, [ebp+0x14] ; frequência cardíaca média 002B: 3B 45 0C cmp eax, [ebp+0xC] ; comparação com valor mínimo 002E: 7C 07 jl 0x37 ; se menor, pula para o próximo valor 0030: 89 45 1C mov [ebp+0x1C], eax ; novo valor mínimo 0033: 8B 45 1C mov eax, [ebp+0x1C] ; valor mínimo 0036: EB 07 jmp 0x3F ; pula para o próximo valor 0037: 8B 45 14 mov eax, [ebp+0x14] ; frequência cardíaca média 003A: 8B 55 0C mov edx, [esi+0x10] ; número de linhas 003D: 89 45 20 mov [ebp+0x20], eax ; frequência cardíaca média 0040: 8B 45 20 mov eax, [ebp+0x20] ; frequência cardíaca média 0043: 8B 55 10 mov edx, [esi+0x10] ; número de linhas 0046: 89 45 24 mov [ebp+0x24], eax ; frequência cardíaca média 0049: 8B 45 24 mov eax, [ebp+0x24] ; frequência cardíaca média 004C: 8B 55 10 mov edx, [esi+0x10] ; número de linhas 004F: 89 45 28 mov [ebp+0x28], eax ; frequência cardíaca média 0052: 8B 45 28 mov eax, [ebp+0x28] ; frequência cardíaca média 0055: 8B 55 10 mov edx, [esi+0x10] ; número de linhas 0058: 89 45 2C mov [ebp+0x2C], eax ; frequência cardíaca média 005B: 8B 45 2C mov eax, [ebp+0x2C] ; frequência cardíaca média 005E: 8B 55 10 mov edx, [esi+0x10] ; número de linhas 0061: 89