Enviado por Do utilizador2154

ATIVIDADE PRÁTICA - logica de progamacao e algoritmo

Propaganda
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:
Download