CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA ANALISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS ATIVIDADE PRÁTICA ALTAIR SILVA DE MELLO – RU: 2671932 PROFESSOR VINICIUS BORIN PARANAGUÁ – PARANÁ 2019 EXERCÍCIO 1 Faça um algoritmo em linguagem C que recebe como entrada dois valores reais (X e Y) e um símbolo de operação matemática via teclado do usuário (+, -, / ou *). O programa deverá retornar o resultado da operação recebida sobre estes dois números. Deve ser permitido que o usuário faça cálculos com valores negativos e positivos. Também, tome cuidado com a possibilidade de uma divisão por zero. Caso o usuário tente dividir por zero, seu programa deve tratar este problema de alguma maneira. Imprima na tela um teste do seu programa utilizando os dois últimos valores de seu RU da UNINTER como os dois valores de entrada, cada valor do seu RU será um dos valores de entrada X e Y. Por exemplo, se seu RU for 1234567, faça X = 6, Y = 7. Solução do aluno: #include<stdio.h> #include<stdlib.h> int main() { float x, y, result; //variáveis do tipo inteiro char op; //variável do tipo caractere printf("\n\n\nDigite o penúltimo digito do seu RU:");//penúltimo digito do RU scanf("%f", &x); printf("\n\n\nDigite o último digito do seu RU:");//último digito do RU scanf("%f", &y); printf("\n\n\nVerifique as operações disponiveis abaixo\n"); printf("\n\n'+' : soma\n"); //operadores matemáticos printf("\n\n'-' : subtração\n"); //operadores matemáticos printf("\n\n'*' : multiplicação\n"); //operadores matemáticos printf("\n\n'/' : divisão\n"); //operadores matemáticos printf("\n\n\nDigite o operador que deseja utilizar: "); //escolha do operador para fazer o calculo scanf(" %c", &op); switch (op) { case'+': result = x + y; //faz a soma se o operador escolhido for (+) printf("\n\n\n\nO resultado é: %.2f\n\n", result); //exibe o resultado da soma break; case'-': 1 result = x - y; //faz a subtração se o operador escolhido for (-) printf("\n\n\n\nO resultado eh: %.2f\n\n", result); //exibe o resultado da subtração break; case'*': result = x * y; //faz a multiplicação se o operador escolhido for (*) printf("\n\n\n\nO resultado eh: %.2f\n\n", result); //exibe o resultado da multiplicação break; case'/': if (y != 0) //verifica se o valor inserido no ultimo digito do RU é diferente de zero printf("\n\n\n\nO resultado eh: %.2f\n\n", x / y); //se o ultimo digito do RU for diferente de zero é exibido o resultado da divisão else printf("\n\n\n\n Não existe divisão por 0\n\n"); //se o ultimo digito do RU for zero, é exibida essa mensagem break; default: printf("\n\nOperador invalido\n\n");// caso seja inserido algo diferente das 4 opções é exibida essa mensagem. } system("pause"); return 0; } Funcionando no seu Computador: EXERCÍCIO 2 Você está organizando um bolão de futebol. Segundo suas regras, os apostadores informam o placar do jogo e ganham 10 pontos se acertarem o vencedor ou se acertaremque foi empate, e ganham mais 5 pontos para o placar de cada time que acertarem. Atabela a seguir dá um exemplo, considerando que o placar real de um jogo foi 3x2. Faça um algoritmo em linguagem C que leia como dado de entrada o placar real deum jogo e 5 apostas de jogadores para aquele jogo. Para cada aposta, deve-se ler o nomedo apostador e o valor que ele apostou. Para cada aposta, calcule os pontos de cadajogador. Ao final do programa, liste na tela o nome de cada apostador e quantos pontoscada um obteve. Imprima na tela um teste do seu programa utilizando os dois últimos valores de seuRU da UNINTER como o placar real do jogo. Por exemplo, se seu RU for 1234567, façacom que o placar real do jogo seja 6x7. Solução do aluno: #include<stdio.h> #include<conio.h> int main(){ char jogador[5][10]; //variavel do tipo caracter que recebera os nomes dos jogadores int placar1, placar2; //variaveis do tipo inteiro int aposta1, aposta2, pontos[5], i; //variaveis do tipo inteiro printf("Digite o placar do primeiro time: "); scanf("%d", &placar1); printf("\nDigite o placar do segundo time: "); scanf("%d", &placar2); for (i = 0; i < 5; i++) { //laço de repetição que repetira 5 vezes os comandos abaixo printf("\n\nDigite o nome do Apostador: "); scanf("%s", &jogador[i]); printf("\nDigite a aposta do primeiro time: "); scanf("%d", &aposta1); printf("\nDigite a aposta do segundo time: "); scanf("%d", &aposta2); pontos[i] = 0;// informa que a variavel pontos tem valor 0 if (placar1 == aposta1) { //verifica se a aposta1 e o placar1 são iguais pontos[i] += 5; //caso seja verdadeiro a condição acima, adiciona 5 a variavel pontos } if (placar2 == aposta2) { //verifica se a aposta2 e o placar2 são iguais pontos[i] += 5; // caso seja verdadeiro a condição acima, adiciona 5 a variavel pontos } if (placar1 > placar2 && aposta1 > aposta2) { // condição para verificar se acertou o vencedor, mas não o resultado pontos[i] += 10; // caso a condição acima seja verdadeira, adiciona 10 a variavel pontos } else if (placar1 == placar2 && aposta1 == aposta2) { // condição para verificar se acertou o vencedor e o placar pontos[i] += 10; // caso a condição acima seja verdadeira, adiciona 10 a variavel pontos } else if (placar1 < placar2 && aposta1 < aposta2) { // condição para verificar se acertou o vencedor, mas não o resultado pontos[i] += 10; // caso a condição acima seja verdadeira, adiciona 10 a variavel pontos } } printf("\n\nPontuacao\n\n"); for (i = 0; i < 5; i++) { //repete 5 vezes as informações abaixo printf("Apostador %s \n", jogador[i]); //exibe o nome dos 5 apostadores printf("Pontuacao %d \n\n", pontos[i]);// exibe a pontuação dos 5 jogadores } getch(); return 0; } Funcionando no seu Computador: EXERCICIO 3 Fazer um algoritmo em linguagem C no qual o usuário vai digitando sucessivamente valores positivos e salvando estes valores em um vetor de dados. Quando o usuário entrar com um valor negativo, o programa deve parar de pedir valores e calcular a média dos valores já fornecidos (excluindo o valor negativo digitado). Para calcular a média, crie uma função que recebe como parâmetro o vetor de dados e retorna para a função principal a média. Imprima a média na tela usando a função principal. Solução do aluno: #include<stdio.h> #include<stdlib.h> doublecalculo(double* num, intl) { //chama a função calculo int i; double soma = 0; for (i = 0; i <l; i++) //laço de repetição para somar todos os números armazenados { soma = soma + num[i]; // calcula para somar os números } return soma / l; //calcula da media } intmain(void) // função principal double num[100], media; int i = 0; while (num[i - 1] >= 0) { //condição para verificar se o numero é maior que zero printf("Digite um numero: "); scanf("%lf", &num[i]); i++; } media = calculo(num, i - 1); //chama a função calculo, mostrando a media printf("Media total : %.2lf\n", media); system("Pause"); } Funcionando no seu Computador: EXERCICIO 4 Faça um algoritmo em linguagem C com as seguintes funcionalidades: Receba uma matriz como dado de entrada. A dimensão da matriz deve ser de 3x5 (3 linhas e 5 colunas); Imprimir a matriz na tela, de uma forma legível; Encontre a matriz transposta e imprima-a na tela, de forma legível; Imprima na tela novamente a matriz transposta, mas agora multiplicando somente a diagonal principal pelos últimos dois números do seu RU da UNINTER; Solução do aluno: #include <stdio.h> #include <stdlib.h> int main() { int matriz[3][5]; //declaração da variavel matriz int i, j; // variavel i para linha e j para coluna for (i = 0; i < 3; i++) { //laço de repetição para correr as linhas da matriz for (j = 0; j < 5; j++) { //laço de repetição para correr as colunas da matriz printf("Digite o elemento da Matriz (%d,%d):", i, j); //digitar o valor que sera armazenado na matriz scanf("%d", &matriz[i][j]); //armazenar valor digitado acima } } for (i = 0; i < 3; i++) { for (j = 0; j < 5; j++) { printf("%d\t", matriz[i][j]); //matriz principal } printf("\n"); } printf("\n\n\n"); for (i = 0; i < 5; i++) { for (j = 0; j < 3; j++) { printf("%d\t", matriz[j][i]); // matriz transposta } printf("\n"); } printf("\n\n\n"); for (j = 0; j < 3; j++) { matriz[j][j] = matriz[j][j] * 45; //diagonal principal multiplicada por 2 } for (i = 0; i < 5; i++) { for (j = 0; j < 3; j++) { printf("%d\t", matriz[j][i]); // exibe a matriz transposta multiplicada } printf("\n"); } system("pause"); return 0; } Funcionando no seu Computador: