Baixe o app para aproveitar ainda mais
Prévia do material em texto
Atividade prática Curitiba PR / Prof. Vinicius Borin (Professor, utilizei printf_s e scanf_s para fazer a atividade prática pois o visual studio (no meu computador) não aceita compilar o código de outra forma, no caso, com printf 'normal' como seria no code blocks ou dev c++. E, o exercício 4 foi todo feito no dev c++ pois tive dificuldades de fazê-lo rodar no VS 2017 por conta dessas pequenas diferenças... enfim, apenas um adendo.) Exercício 1: Faça um algoritmo em linguagem C que recebe três valores X, Y e Z do usuário, e determine se estes valores podem formar os lados de um triangulo (por exemplo, o valor zero não pode formar um triangulo). Em caso afirmativo, informar na tela se o triangulo é equilátero, isósceles ou escaleno. Imprima na tela um teste do seu programa utilizando os três últimos valores de sua matricula da UNINTER como lados do triangulo, cada valor da sua matrícula será um dos valores X, Y ou Z. Por exemplo, se sua matricula For 1234567, faça X = 5, Y = 6 e Z = 7. Resposta: #include <stdio.h> #include<stdlib.h> int main() { int x, y, z; // variáveis de entrada printf_s("Indique o lado 1 (X) do triangulo: "); // lado 1 scanf_s("%d", &x); // conteúdo da variável x que será exibido na tela printf_s("Indique o lado 2 (Y) do triangulo: "); // lado 2 scanf_s("%d", &y); // conteúdo da variável y que será exibido na tela printf_s("Por fim, indique o lado 3 (Z) do triangulo: "); // lado 3 scanf_s("%d", &z); // conteúdo da variável z que será exibido na tela if (x + y >= z && x + z >= y && y + z >= x) // conferindo se é um triângulo { if (x == y && y == z && z == x) { printf_s("Triangulo Equilatero!\n\n"); } // se tiver essas condições será equilátero else if (x == y || y == z || z == x) { printf_s("Triangulo Isoscele!\n\n"); } // caso contrário ele pula e, caso tenha essas, será isóscele else if (x != y && y != z && z != x) { printf_s("Triangulo Escaleno!\n\n"); } // por último, se for escaleno } else //logo, se os valores não formarem nenhum triângulo, irá aparecer na tela: printf_s("Os valores inseridos sao invalidos para se formar um triangulo, lamento! \n\n"); system("pause"); // pausa o terminal return 0; } Exercício 3: Faça um algoritmo em linguagem C com as seguintes funcionalidades: • Leia um vetor de N posições. O valor máximo de N deverá ser no máximo 100. A leitura deverá ser feita manualmente pelo teclado; • Crie mais dois vetores. Armazene em um destes vetores todos os valores PARES digitados, e no outro, todos os valores ÍMPARES digitados; • Imprima na tela, de uma forma legível, o número do seu RU, o vetor dos pares e o vetor dos ímpares, este último deve ter multiplicado cada valor pelos dois últimos números da sua matrícula. Por exemplo: se sua matricula for 1234567, multiplique cada valor do vetor por 67. Resposta: #include <stdio.h> #include <stdlib.h> int main() { int i, num[100], n = 0, pares[100], npar = 0, impares[100], nimpar = 0, ru = 2407680; // variáveis printf_s("\nInforme a quantidade de numeros (no MAX 100!): "); // valor escrito pelo usuário scanf_s("%d", &n); // valor guardado while ((n > 100) || (n < 0)) { // analisando se o número é maior que 100 e/ou menor que 0 printf_s("Numero de valores invalido!!!\n"); // caso o usuário tenha digitado um valor que não caiba nas especificações acima, o laço se repete ↓ printf_s("\nInforme a quantidade de numeros: "); // repetições scanf_s("%d", &n); } printf_s("\nInforme os numeros:\n"); // caso tenha informado os dados certos, cairá aqui ↓ for (i = 0; i < n; i++) { // analisando os dados digitados scanf_s("%d", &num[i]); if (num[i] % 2 == 0) // é par? Se sim, guarda na variável npar pares[npar++] = num[i]; else // não é par, então só pode ser ímpar. Guarda na variável nimpar impares[nimpar++] = num[i]; } printf_s("\n====================IMPRIMINDO RU:====================\n"); // aviso printf_s("\n %d", ru); // impressão do ru na tela printf_s("\n\n========================Pares:========================\n"); // aviso for (i = 0; i < npar; i++) { printf_s("\n \t%d", pares[i]); // imprimindo pares } printf_s("\n\n====================Impares X 80:=====================\n"); { for (i = 0; i < nimpar; i++) printf_s("\n \t%d", (impares[i] * 80)); // imprimindo impares } printf_s("\n\n"); // pular duas linhas system("pause"); // pausa o terminal return 0; } Exercício 4: Faça um algoritmo em linguagem C com as seguintes funcionalidades: • Receba duas matrizes como dados de entrada. A dimensão das matrizes deve ser de, no máximo 5x5. Ambas matrizes devem ter as mesmas dimensões; • O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma checagem usando um laço de repetição que só permita o programa avançar caso ele digite dimensões corretas de no máximo 5; • Escreva ambas matrizes na tela, de uma forma legível; • Escreva a matriz resultante da soma destas duas matrizes multiplicada pelos últimos dois números da sua matricula da UNINTER; • Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos últimos dois números da sua matricula da UNINTER; Resposta: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { // variáveis de entrada char matricula[] = "2407680"; // vetor de caracteres para representar (ou receber) o número da matricula printf("Sua matricula eh: %s \n", matricula); // imprimindo na tela o número definido acima char *to = (char*)malloc(6); // aloca memória no heap strncpy(to, matricula + strlen(matricula) - 2, 2); // copia a quantidade de caracteres da string int duasCasas = atoi(to); printf("Final: %d \n", duasCasas); // imprimindo os últimos dois números da matricula int tamanhoMatriz = 0; do { printf("Informe o tamanho da matriz \n"); // recebendo o valor da matriz scanf("%d", &tamanhoMatriz); if (tamanhoMatriz > 5 || tamanhoMatriz < 1) // analisando se o tamanho é de acordo com o definido { printf("Tamanho maximo permitido eh 5\n"); // caso o valor não seja o ideal, essa mensagem será exibida } } while (tamanhoMatriz > 5 || tamanhoMatriz < 1); int matriz1[tamanhoMatriz][tamanhoMatriz]; // Declaração de Matrizes int matriz2[tamanhoMatriz][tamanhoMatriz]; // Declaração de Matrizes int i1 = 0; // variável i1 representa a linha e i2 a coluna da matriz int i2 = 0; for (i1; i1 < tamanhoMatriz; i1++) { i2 = 0; for (i2; i2 < tamanhoMatriz; i2++) { matriz1[i1][i2] = i1 + i2 + 1; // matriz soma os valores de i1 e i2 matriz2[i1][i2] = i1 + i2 + 1; // '' } } printf("Matriz1\n"); // imprimindo (nome) "matriz 1" na tela i1 = 0; for (i1; i1 < tamanhoMatriz; i1++) { printf("|"); // manter as matrizes organizadas i2 = 0; for (i2; i2 < tamanhoMatriz; i2++) // se i1 e i2 condizer com o tamanho especificado para a matriz: { printf("%d|", matriz1[i1][i2]); // impressão da matriz 1 na tela } printf("\n"); // pula a linha } printf("Matriz2\n"); // imprimindo (nome) "matriz 2" na tela i1 = 0; for (i1; i1 < tamanhoMatriz; i1++) // analisando para concluir se o tamanho está correto { printf("|"); // manter as matrizes organizadas i2 = 0; for (i2; i2 < tamanhoMatriz; i2++) // se i1 e i2 condizer com o tamanho especificado paraa matriz: { printf("%d|", matriz2[i1][i2]); // impressão da matriz 2 na tela } printf("\n"); // pula a linha } printf("Soma X matricula\n"); // imprimindo (nome) "Soma X matricula" na tela i1 = 0; for (i1; i1 < tamanhoMatriz; i1++) { printf("|"); // manter as matrizes organizadas i2 = 0; for (i2; i2 < tamanhoMatriz; i2++) // se isso estiver certo: { printf("%d|", ((matriz2[i1][i2] + matriz2[i1][i2])*duasCasas)); // matriz 1 e matriz 2 serão multiplicadas pelos últimos dois números do RU } printf("\n"); // pula a linha } printf("Diagonal\n"); // imprimindo (nome) "Diagonal" na tela printf("|"); // organização da matriz i1 = 0; for (i1; i1 < tamanhoMatriz; i1++) { i2 = 0; for (i2; i2 < tamanhoMatriz; i2++) { if (i1 == i2) // i1 igual a i2 { printf("%d|", ((matriz1[i1][i2] + matriz2[i1][i2]) * duasCasas)); } } } system("pause"); // pausa o terminal return 0; }
Compartilhar