Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1118. Mostrar todas as postagens
Mostrando postagens com marcador 1118. Mostrar todas as postagens

sábado, 2 de janeiro de 2021

URI - 1118 - Várias Notas Com Validação - Iniciante - C

Plataforma: URI

Problema1118

Enunciado:
Escreva um programa para ler as notas da primeira e a segunda avaliação de um aluno. Calcule e imprima a média semestral. O programa só deverá aceitar notas válidas (uma nota válida deve pertencer ao intervalo [0,10]). Cada nota deve ser validada separadamente. No final deve ser impressa a mensagem “novo calculo (1-sim 2-nao)”, solicitando ao usuário que informe um código (1 ou 2) indicando se ele deseja ou não executar o algoritmo novamente, (aceitar apenas os código 1 ou 2). Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo, caso contrário o programa deve ser encerrado.

Linguagem: C

Solução:

#include <stdio.h>
double recebeNota(){
    double nota;
    while (1) {
        scanf("%lf",&nota);
        if (nota<0 || nota>10) printf("nota invalida\n");
        else return nota;
    }
}
int recebeOpt() {
    int opt;
    while (1) {
        printf("novo calculo (1-sim 2-nao)\n");
        scanf("%i",&opt);
        if (opt==2) exit(0);
        if (opt==1) return 1;
    }
}

int main(){
    int novoCalculo;
    double nota1, nota2;
    while (1){
        nota1=recebeNota();
        nota2=recebeNota();
        printf("media = %.2lf\n", (nota1+nota2)/2.0);
        novoCalculo=recebeOpt();
        
    }
    return 0;
}

URI - 1118 - Várias Notas Com Validação - Iniciante - C++ - Solução Alternativa

Plataforma: URI
Problema1118

Enunciado:
Escreva um programa para ler as notas da primeira e a segunda avaliação de um aluno. Calcule e imprima a média semestral. O programa só deverá aceitar notas válidas (uma nota válida deve pertencer ao intervalo [0,10]). Cada nota deve ser validada separadamente. No final deve ser impressa a mensagem “novo calculo (1-sim 2-nao)”, solicitando ao usuário que informe um código (1 ou 2) indicando se ele deseja ou não executar o algoritmo novamente, (aceitar apenas os código 1 ou 2). Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo, caso contrário o programa deve ser encerrado.

Linguagem: C++

Solução:

#include <iostream>
#include <iomanip>
using namespace std;
double recebeNota() {
    double nota;
    while (cin >> nota) {
        if (nota < 0 || nota > 10)
            cout << "nota invalida" << endl;
        else
            return nota;
    }
}
int recebeOpt() {
    int opt;
    while (1) {
        cout << "novo calculo (1-sim 2-nao)" << endl;
        cin >> opt;
        if (opt == 2)
            exit(0);
        if (opt == 1)
            return 1;
    }
}
int main() {
    int novoCalculo;
    double nota1, nota2;
    while (1) {
        nota1 = recebeNota();
        nota2 = recebeNota();
        cout << "media = " << fixed << setprecision(2) << (nota1+nota2)/2.0 << endl;
        novoCalculo = recebeOpt();
    }
    return 0;
}

sábado, 13 de junho de 2020

URI - 1118 - Várias Notas Com Validação - Iniciante - C++

Plataforma: URI
Problema1118

Enunciado:
Escreva um programa para ler as notas da primeira e a segunda avaliação de um aluno. Calcule e imprima a média semestral. O programa só deverá aceitar notas válidas (uma nota válida deve pertencer ao intervalo [0,10]). Cada nota deve ser validada separadamente. No final deve ser impressa a mensagem “novo calculo (1-sim 2-nao)”, solicitando ao usuário que informe um código (1 ou 2) indicando se ele deseja ou não executar o algoritmo novamente, (aceitar apenas os código 1 ou 2). Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo, caso contrário o programa deve ser encerrado.

Linguagem: C++

Solução:
É feita a leitura de n1. Então, é verificado se ele está no intervalo de 0 a 10. Caso não esteja, é feita a leitura novamente, repetindo o processo até que ele esteja neste intervalo. Quando ele estiver neste intervalo, então é feita a leitura de n2, seguindo a mesma ideia.

Posteriormente é impresso a média, fazendo a soma dos valores n1 e n2 e dividindo o resultado por 2.
Após fazer o cálculo da média, é perguntado ao usuário se o processo deve ser repetido, onde um while externo é responsável por repetir quando o valor digitado for 1.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <iomanip>

using namespace std; 

int main() 
{
 float n1,n2;
  cout<<setprecision(2)<<fixed;
  int n_calculo =1;
  while(n_calculo==1){
   cin >> n1;
  while(n1<0 or n1>10){
   cout << "nota invalida"<< endl;
   cin >> n1;
  }
  cin >> n2;
  while(n2<0 or n2>10){
   cout << "nota invalida"<< endl;
   cin >> n2;
  }
  cout << "media = "<<(n1+n2)/2.0<<endl;
  cout << "novo calculo (1-sim 2-nao)"<<endl;
  cin >> n_calculo;
  while(n_calculo!=1 and n_calculo!=2){
   cout << "novo calculo (1-sim 2-nao)"<<endl;
   cin >> n_calculo;
  }
 }

    return 0; 
} 

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas