Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA TECNOLOGIA ANALISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS ATIVIDADE PRÁTICA WELLYTON KLEBIS– RU: 2647531 VINICIUS BORIN PROFESSOR CURITIBA – PARANA 2019 1 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 : #include <stdio.h> #include<stdlib.h> int main() { float n1, n2, op; // declaração de variaveis tipo float pois poderá ser realizados calculos com números com virgula; char oper; // declação de variavel tipo caracter { printf("Calculadora"); printf("[Operacoes disponiveis]"); // menu demostrativo de operações aceitas pelo algoritimo; printf("\t[+] : soma\n"); printf("\t[-] : subtracao\n"); printf("\t[*]: multiplicao\n"); printf("\t[/]: divisao\n"); printf("Digite o primeiro valor seguido do operador e o segundo valor"); printf("Exemplos: (1 + 1 ) (2.1 * 3.1)\n"); scanf_s("%f", &n1);// realiza a leitura do número 1 digitado pelo usuário; scanf_s(" %c", &oper);// realiza a leitura do operador digitado pelo usuário; scanf_s("%f", &n2); // realiza a leitura do número 2 digitado pelo usuário; //system("cls || clear"); switch (oper)// função escolha caso { case + : printf("%.2f\n\n", n1 + n2); break; case -: printf("%.2f\n\n", n1 - n2); break; case * : printf("%.2f\n\n", n1 * n2); break; case / : if (n2 != 0)// só execulta a divisão caso o divisor seja diferente de zero ; { printf("%.2f\n\n", n1 / n2); else printf("ERRO não existe divisao por ZERO\n\n"); break; printf("opção de operador invalida"); default: // caso a opçãoes acima não sejam executadas essa função entra em operação; if (oper != '+' || oper != '-' || oper != '*' || oper != '/')// caso o operador digitado seja diferentes das op- ções será executado essa função; printf("OPERADOR INVALIDO\n\n"); break; } } system("pause"); system("cls || clear"); return 0; } Imagem do código funcionando : 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 acertarem que foi empate, e ganham mais 5 pontos para o placar de cada time que acertarem. A tabela a seguir dá um exemplo, considerando que o placar real de um jogo foi 3x2. #include<stdio.h> #include<stdlib.h> int main() { int p1, p2, resu, pts[5]; int aps1, aps2, i; char jogador[5]; printf("\n\n"); printf("\t#####BOLAO#####\n"); printf("\n\n"); // printf("\t\QUAL O PLACAR DO JOGO\n\n"); scanf("%d", &p1); scanf("%d", &p2); for (int i = 0; i <= 2; i++) { printf("Apostador\n"); scanf("%s", &jogador[i]); printf("aposta1\n"); scanf("%d", &aps1); printf("aposta2\n"); scanf("%d", &aps2); if (aps1 == p1) { // caso valor aposta 1 for igual a placar 1 será adcionado 10 pontos ao apostado. pts[i] += 5; } if (aps2 == p2) { pts[i] += 5; resu = aps1 - aps2; } if (aps1 != p1 || aps2 != p2) { pts[i] += 0; } if (resu > 0 && resu > 0 || resu < 0 && resu < 0 || resu == 0 && resu == 0) { pts[i] += 10; } } for (int i = 0; i <= 5; i++) { printf("%d", pts[i]); printf("%s", jogador[5]); } system("pause"); return 0; } Exercício 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 princpal #include<stdio.h> #include<stdlib.h> //função media double cmedia(double* vet, int len) { int i; double sm = 0; //define o vetor for (i = 0;i < len;i++) { sm = sm + vet[i]; } return sm / len; } int main(void) { double vet[100], m; int i = 0; printf("Welytonklebis RU:2647531\n\n\n\n"); do { printf("\t\tentre com um valor "); // informa ao usuário para digitar valores; scanf("%lf", &vet[i]); // grava os valores digitado pelo usuáio i++; } while (vet[i - 1] >= 0); //calcula o valor do vetor e ao final imprimi o resultado na tela; m = cmedia(vet, i - 1); printf("\t\media dos valores digitados : [%.2lf]\n", m); // retorna valor da media dos valores armazenados no vetor; system("pause"); return 0; } Imagem do código funcionando Exercício 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; #include<stdlib.h> int main(void) { int m1[3][5], m2[5][3]; // declaração de variaveis int i, j, Ru = 31; printf("\t\tMATRIZ 3X5\n\n"); // informação ao usuario printf("\tentre com valores\n"); for (i = 0;i < 3;i++) // laço de repetição preencher indice I matriz; for (j = 0;j < 5;j++)// laço de repetição preencheer indice j matriz scanf("%d", &m1[i][j]); // armazena valores digitados. putchar('\n'); printf("digitar valores");// for (i = 0;i < 3;i++) { printf("\n\n"); for (j = 0;j < 5;j++) printf("%3d", m1[i][j]);} for (i = 0;i < 3;i++) for (j = 0;j < 5;j++) m2[j][i] = m1[i][j]; putchar('\n'); printf("\nA MATRIZ TRANSPOSTA\n"); putchar('\n'); for (i = 0;i < 5;i++) { for (j = 0;j < 3;j++) putchar('\n'); printf("%d", m2[j][i]); } putchar('\n'); for (i = 0;i < 5;i++) m2[i][i] *= Ru; putchar('\n'); putchar('\n'); printf("DIAGONAL\n"); putchar('\n'); for (i = 0;i < 3;i++) { putchar('\n'); for (j = 0;j < 3;j++) printf("%3d", m2[i][j]); } putchar('\n'); system("pause"); Imagem do código funcionando }
Compartilhar