Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO ATIVIDADE PRÁTICA NOME ALUNO: GABRIEL PEREIRA DA FONSECA – RU: 3356131 NOME PROFESSOR: WINSTON SEN LUN FUNG CAXIAS DO SUL - RS ANO DO PROJETO 2021 EXERCÍCIO 1 #include <stdio.h> // Biblioteca usada para entrada e saída de dados #include <stdlib.h> //Biblioteca usada para alocação de memória, controle de processos, conversões e outras. struct Funcionario // Declaração de uma estrutura chamada Funcionário. { char nome[40]; // Váriavel para alocar o nome do funcionário, do tipo charactercom espaço para 40 letras. float salario; // Definido variável para alocar o valor do salário, do tipo ponto flutuante, por se tratar de valor monetário. }; int main() // { struct Funcionario registro, * p_registro; //Definido um apelido para a struct e um ponteiro. p_registro = ®istro; //Definido o endereço do ponteiro para a estrutura Funcionario. char c; printf("Funcionario: "); fgets(registro.nome, 40, stdin); //Registrado o nome dentro da variável nome, utilizando o fgets para registrar strings. printf("\nSalario: "); scanf_s("%f", ®istro.salario); //Registrado o nome dentro da variável salario. while ((c = getchar()) != '\n' && c != EOF) {} //Limpeza de buffer. if (p_registro->salario > 4664.68) { // Início de uma estrutura condicional, condicionado caso o ponteiro salário seja maior que 4664.68. printf("\n*************FOLHA DE PAGAMENTO DO FUNCIONARIO*************\n"); printf("\nNome: %s\n", registro.nome); //Impressão variável nome, dentro da estrutura. printf("\nSalario: %f\n", p_registro->salario); //Impressão da variável salário, com uso de ponteiro. printf("\nAliquota de 27.5%%\n"); printf("\nImposto a ser descontado: %f\n", p_registro->salario * 0.275); //Impressão do cálculo que será descontado sobre a alíquota, conforme o percentual. } else if (p_registro->salario > 3751.06) { // Início de uma estrutura condicional, condicionado caso o ponteiro salário seja maior que 3751.06. printf("\n*************FOLHA DE PAGAMENTO DO FUNCIONARIO*************\n"); printf("\nNome: %s", registro.nome); printf("\nSalario: %f\n", p_registro->salario); printf("\nAliquota de 22.5%%\n"); printf("\nImposto a ser descontado: %f\n", p_registro->salario * 0.225); } else if (p_registro->salario > 2826.65) { // Início de uma estrutura condicional, condicionado caso o ponteiro salário seja maior que 2826.65. printf("\n*************FOLHA DE PAGAMENTO DO FUNCIONARIO*************\n"); printf("\nNome: %s\n", registro.nome); printf("\nSalario: %f\n", p_registro->salario); printf("\nAliquota: 15%%\n"); printf("\nImposto a ser descontado: %f\n", p_registro->salario * 0.15); } else if (p_registro->salario > 1903.99) { // Início de uma estrutura condicional, condicionado caso o ponteiro salário seja maior que 1903.99. printf("\n*************FOLHA DE PAGAMENTO DO FUNCIONARIO*************\n"); printf("\nNome: %s\n", registro.nome); printf("\nSalario: %f\n", p_registro->salario); printf("\nAliquota: 7.5%%\n"); printf("\nImposto a ser descontado: %f\n", p_registro->salario * 0.075); } else { printf("\n*************FOLHA DE PAGAMENTO DO FUNCIONARIO*************\n"); //Caso o salário do funcionário seja menor que 1903.99, será impresso as informações normalmente. printf("\nNome: %s\n", registro.nome); //sem fazer nenhum cálculo sobre o salário. printf("\nSalario: %f\n", p_registro->salario); printf("\nAliquota: Isento\n"); printf("\nImposto a ser descontado: %f\n", p_registro->salario * 0); } return 0; } EXERCíCIO 2 #include <stdio.h> //Biblioteca usada para entrada e saída de dados. #include <stdlib.h> //Biblioteca usada para alocação de memória, controle de processos, conversões e outras. int main() { int ru; //Declarado uma variável do tipo inteiro chamado de ru. printf("Digite o seu RU(somente 6 digitos):"); scanf_s("%d", &ru); //Função para receber e endereçar o digitado pelo usuário dentro da variável ru. printf("\nSeu RU e: %d", ru); int ru0 = ru / 1000000 % 10; //Definido uma variável do tipo inteiro, onde foi aplicado um cálculo de divisão do RU recebido int ru1 = ru / 100000 % 10; //de acordo com a quantia de casas decimais, no final é divido o resto da divisão por 10, resultando no primeiro dígito do RU. int ru2 = ru / 10000 % 10; // o mesmo acontece até o último dígito do número recebido. int ru3 = ru / 1000 % 10; int ru4 = ru / 100 % 10; int ru5 = ru / 10 % 10; int ru6 = ru / 1 % 10; int soma = ru0 + ru1 + ru2 + ru3 + ru4 + ru5 + ru6; //soma de todos os dígitos do RU. int vetor_ru[8] = { ru0, ru1, ru2, ru3, ru4, ru5, ru6, soma }; //vetor criado incluindo todos os inteiros calculados. int* pont; //definido ponteiro pont = vetor_ru; //ponteiro será igual ao vetor criado anteriormente. printf("\n\n%i + %i + %i + %i + %i + %i + %i = %i\n", vetor_ru[0], vetor_ru[1], vetor_ru[2], vetor_ru[3], vetor_ru[4], vetor_ru[5], vetor_ru[6], vetor_ru[7]); //Impressão dos resultados. return 0; } EXERCÍCIO 3 #include <stdio.h> //Biblioteca usada para entrada e saída de dados. #include <stdlib.h> //Biblioteca usada para alocação de memória, controle de processos, conversões e outras. int main(void) { int mat_A[4][4], mat_B[4][4], mat_C[4][4]; //Definido as matrizes do tipo inteiro, com 4 colunas e 4 linhas cada. //MATRIZ A for (int i = 0; i < 4; ++i) { //definido laço de repetição, iniciando do 0, quando variável i menor que 0. Adicionando 1 a variável a cada execução, definindo valores para cada linha da matriz. for (int j = 0; j < 4; ++j) { //definido laço de repetição dentro do anterior, iniciando do 0. Quando variável j menor que 0 e adicionando 1 a variável a cada execução, definindo valores para cada coluna da matriz. printf("A[%d][%d]:", i, j); //impressão das posições da matriz A, solicitando o usuário a inserir os valores. scanf_s("%d", &mat_A[i][j]); //gravando os valores das linhas e colunas para a matriz A. } } //MATRIZ B printf("\n"); for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { printf("B[%d][%d]:", i, j); scanf_s("%d", &mat_B[i][j]); } } printf("\n\n"); printf("MATRIZ A:\n"); //impressão da matriz A for (int i = 0; i < 4; ++i) { //utilizado um laço de repetição para percorrer os valores dentro das linhas em A for (int j = 0; j < 4; ++j) { //utilizado um laço de repetição para percorrer os valores dentro das colunas em A printf("%i ", mat_A[i][j]); //impressão dos resultados dentro dos laços de repetições. } printf("\n"); } printf("\n"); printf("MATRIZ B:\n"); for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { printf("%i ", mat_B[i][j]); } printf("\n"); } printf("\n"); printf("MATRIZ C:\n"); for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { int mat_C = mat_A[i][j] + mat_B[i][j]; //laços de repetições definidos como anteriormente, a diferença é que serão somados os valores das matrizes A e B, aderindo o resultado referente a cada linha e coluna na matriz C. printf("%d ", mat_C); } printf("\n"); } return 0; } EXERCÍCIO 4 #include<stdio.h> int soma(int multiplicando, int multiplicador) { //definiçãode uma função chamada soma, no qual têm como parâmetros duas variáveis inteiras, um valor para o multiplicando e outro para o multiplicador. if (multiplicador == 0 || multiplicando == 0) { //condição imposta caso as variáveis multiplicador ou multiplicando sejam igual a 0, no qual será retornado o valor 0. return 0; } else if (multiplicador == 1) { //caso o multiplicador seja igual a 1, retornará o valor do multiplicando. return multiplicando; } else { return(multiplicando + soma(multiplicador - 1, multiplicando)); //definição da função recursiva, onde soma o multiplicando com o resultado da função soma, no qual diminui uma unidade do multiplicador e recursivamente foi chamando a mesma função, até que o valor do multiplicador fosse igual a 1, pegando os resultados somando recursivamente até a primeira chamada. } } int main() { int multiplicador, multiplicando, resp; //declaração das variáveis inteiras. printf("Digite o multiplicando: \n"); scanf_s("%i", &multiplicando); //Alocação da variável multiplicando. printf("Digite o multiplicador: \n"); scanf_s("%i", &multiplicador); //Alocação da variável multiplicador. resp = soma(multiplicando, multiplicador); //definido a variável resp como a função soma, com os parâmetros multiplicando e multiplicador. printf("O resultado da multiplicacao por soma e: %i\n", resp); //impressão do resultado return 0; } EXERCÍCIO 5 #define _CRT_SECURE_NO_WARNINGS //desativar os avisos de substituição para essas funções no CRT. #include<stdio.h> #include<stdlib.h> struct dados { //definição de uma estrutura de variáveis, contendo nome, CPF, telefone e email. char nome[40]; long int CPF; int telefone; char email[40]; }; int main() { FILE* arquivo = fopen("C:\\Users\\gabep\\OneDrive\\Área de Trabalho\\3356131.csv", "a"); //definição de uma variável chamada arquivo, sendo um ponteiro e do tipo FILE, definido o local de criação na área de trabalho e o caractere "a" de append, adicionando informações no arquivo. char c; struct dados registro, * p_registro; //definido o apelido a struct e também um ponteiro para registro. p_registro = ®istro; // o ponteiro terá os mesmos valores da struct dados registro. for (int i = 0; i < 6; ++i) { // estrutura de repetição solicitando 6 entradas para o registro da struct. printf("\nNome: "); fgets(registro.nome, 40, stdin); //alocando informações do nome dentro da variável 'nome'. printf("\nCPF: "); scanf_s("%i", ®istro.CPF); //alocando informações do CPF dentro da variável 'CPF'. while ((c = getchar()) != '\n' && c != EOF) {} //limpeza de buffer. printf("\nTelefone: "); scanf_s("%i", ®istro.telefone); //alocando informações do telefone dentro da variável 'telefone'. while ((c = getchar()) != '\n' && c != EOF) {} printf("\nEmail: "); fgets(registro.email, 40, stdin); //alocando informações do email dentro da variável 'email'. fprintf(arquivo, "%s;%i;%i;%s", p_registro->nome, p_registro->CPF, p_registro->telefone, p_registro->email); //função fprintf utitilizada para gravar as informações no arquivo CSV } fclose(arquivo); //fechando o arquivo. return 0; }
Compartilhar