Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- char Menu(char NomeArquivo[]) // Função inicial que pega o nome do arquivo.
- {
- printf("Insira o nome do arquivo: "); // Pede o nome do arquivo.
- gets(NomeArquivo); // Armazena o nome do arquivo que o usuário digitou e armazena na string "NomeArquivo".
- system("cls"); // Limpa a tela.
- fflush(stdin); // Limpa o buffer do teclado.
- return* NomeArquivo; // Retorna a string "NomeArquivo" como um ponteiro.
- }
- void Verificar_dados(char NomeArquivo[])
- {
- FILE *entrada
- entrada = fopen(NomeArquivo, "r");
- if (entrada == NULL)
- {
- printf("Arquivo invalido!\n\n");
- exit(0);
- }
- fclose(entrada);
- }
- void Ler_dados(char NomeArquivo[]) // Função que lê os dados do arquivo e passa pra matrizes.
- {
- FILE *entrada;
- entrada = fopen(NomeArquivo, "r");
- float taxa;
- int linhas, colunas;
- fscanf(entrada, "%f\n%d\n%d", &taxa, &linhas, &colunas); // Pega as três primeiras linhas do arquivo.
- //printf("%f\n%d\n%d\n", taxa, linhas, colunas);
- float matriz_entrada_propinas[linhas][colunas];
- float matriz_entrada_parcelas[linhas][colunas];
- float matriz_saida_propinas[linhas][colunas];
- float soma_montante[linhas];
- float total_propina_empresa_sem_juros[colunas];
- float total_propina_empresa_com_juros[colunas];
- float soma_entrada_propinas_sem_juros[linhas];
- float soma_entrada_propinas_com_juros[linhas];
- int i, j, politico[linhas];
- for(i = 0; i<linhas; i++)
- {
- fscanf(entrada,"%d\n",&politico[i]);
- for (j=0; j<colunas; j++)
- {
- fscanf(entrada,"%f",&matriz_entrada_propinas[i][j]); // Pega a matriz de entrada das propinas.
- //printf("%.2f ", matriz_entrada_propinas[i][j]);
- }
- }
- for ( i = 0; i<linhas; i++)
- {
- for (j=0; j<colunas; j++)
- {
- fscanf(entrada,"%f",&matriz_entrada_parcelas[i][j]); // Pega a matriz de entrada das parcelas.
- //printf("%.2f ", matriz_entrada_parcelas[i][j]);
- }
- }
- // VALOR TOTAL DE PROPINAS (MONTANTE)
- for(i=0; i<linhas; i++)
- {
- soma_montante[i]=0;
- printf("%d ", politico[i]);
- for(j=0; j<colunas; j++)
- {
- matriz_saida_propinas[i][j] = matriz_entrada_propinas[i][j] * (pow(1+(taxa/100), matriz_entrada_parcelas[i][j]));
- soma_montante[i] += matriz_saida_propinas[i][j];
- printf("%.2f ", matriz_saida_propinas[i][j]);
- }
- printf("%.2f", soma_montante[i]);
- printf("\n");
- }
- printf("\n");
- // TOTAL DE PROPRINA (COM JUROS) PAGA POR EMPRESA
- for(j=0; j<colunas; j++)
- {
- for(i=0; i<linhas; i++)
- {
- total_propina_empresa_com_juros[j] += matriz_saida_propinas[i][j];
- }
- printf("%.2f ", total_propina_empresa_com_juros[j]);
- }
- // TOTAL DE PROPINA (SEM JUROS) PAGA POR EMPRESA
- for(j=0; j<colunas; j++)
- {
- for(i=0; i<linhas; i++)
- {
- total_propina_empresa_sem_juros[j] += matriz_entrada_propinas[i][j];
- }
- }
- printf("\n");
- // TOTAL PROPINA POLITICOS
- for(i=0; i<linhas; i++)
- {
- //printf("%d ", politico[i]);
- for(j=0; j<colunas; j++)
- {
- soma_entrada_propinas_sem_juros[i] += matriz_entrada_propinas[i][j];
- }
- //printf("%.2f ", soma_entrada_propinas_sem_juros[i]); // 101090.00
- }
- printf("\n");
- // 414215.34
- for(i=0; i<linhas; i++)
- {
- for (j=0; j<colunas; j++)
- {
- soma_entrada_propinas_com_juros[i]+= matriz_saida_propinas[i][j];
- }
- //printf("%.2f ", soma_entrada_propinas_com_juros[i]); // 414215.34
- }
- // MAIOR PROPINA POLITICO
- int maior_propina= 0;
- float politico_propina_com_juros=0;
- float politico_propina_sem_juros=0;
- for(i=0; i<linhas; i++)
- {
- if ( soma_entrada_propinas_sem_juros[i] >soma_entrada_propinas_sem_juros[maior_propina])
- {
- maior_propina = i;
- }
- }
- politico_propina_com_juros=soma_entrada_propinas_com_juros[maior_propina];
- politico_propina_sem_juros=soma_entrada_propinas_sem_juros[maior_propina];
- printf("%d %.2f %.2f %.2f", politico[maior_propina],politico_propina_sem_juros, politico_propina_com_juros, politico_propina_com_juros- politico_propina_sem_juros);
- printf("\n\n");
- // MENOR PROPINA POLITICO
- int menor_propina=0;
- for(i=0; i<linhas; i++)
- {
- if ( soma_entrada_propinas_sem_juros[i] <soma_entrada_propinas_sem_juros[menor_propina])
- {
- menor_propina = i;
- }
- }
- politico_propina_com_juros=soma_entrada_propinas_com_juros[menor_propina];
- politico_propina_sem_juros=soma_entrada_propinas_sem_juros[menor_propina];
- printf("%d %.2f %.2f %.2f", politico[menor_propina],politico_propina_sem_juros, politico_propina_com_juros, politico_propina_com_juros- politico_propina_sem_juros) ;
- printf("\n\n");
- // MAIOR PROPINA EMPRESA
- float empresa_propina_com_juros=0;
- float empresa_propina_sem_juros=0;
- for(i=0; i<colunas; i++)
- {
- if ( total_propina_empresa_com_juros[i] >total_propina_empresa_com_juros[maior_propina])
- {
- maior_propina = i;
- }
- }
- empresa_propina_com_juros=total_propina_empresa_com_juros[maior_propina];
- empresa_propina_sem_juros=total_propina_empresa_sem_juros[maior_propina];
- printf("%d %.2f %.2f %.2f", politico[maior_propina],empresa_propina_sem_juros, empresa_propina_com_juros, empresa_propina_com_juros- empresa_propina_sem_juros) ;
- printf("\n\n");
- // MENOR PROPINA EMPRESA
- for(i=0; i<colunas; i++)
- {
- if ( total_propina_empresa_com_juros[i] <total_propina_empresa_com_juros[menor_propina])
- {
- menor_propina = i;
- }
- }
- empresa_propina_com_juros=total_propina_empresa_com_juros[menor_propina];
- empresa_propina_sem_juros=total_propina_empresa_sem_juros[menor_propina];
- printf("%d %.2f %.2f %.2f", politico[menor_propina],empresa_propina_sem_juros, empresa_propina_com_juros, empresa_propina_com_juros- empresa_propina_sem_juros) ;
- printf("\n\n");
- // MEDIA POLITICO
- for(i=0; i<linhas; i++)
- {
- printf("%d %.2f",politico[i],soma_entrada_propinas_com_juros[i] / linhas);
- printf("\n");
- }
- printf("\n");
- // MEDIA EMPRESA
- for(i=0; i<colunas; i++)
- {
- printf("%d %.2f",politico[i], total_propina_empresa_com_juros[i] / linhas);
- printf("\n");
- }
- fclose(entrada);
- }
- int main()
- {
- char NomeArquivo[50];
- Menu(NomeArquivo);
- Verificar_dados(NomeArquivo);
- Ler_dados(NomeArquivo);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement