Analise o código em C++ abaixo e explique, de forma clara e objetiva, o comportamento do programa. Informe qual erá a saida para as seguintes entradas:
.
#include <iostream>
using namespace std;
int main() {
int x,y,z,w=0;
cin >> x;
cin >> y;
If (y < x) {
z=y;
y = x;
x = z;
}
int i = x;
do {
w += i;
i++;
} while (i <= y);
cout << w << endl;
return 0;
}
#include <iostream>
using namespace std;
int main() {
int x,y,z,w=0;
cin >> x;
cin >> y;
If (y < x) {
z=y;
y = x;
x = z;
}
int i = x;
do {
w += i;
i++;
} while (i <= y);
cout << w << endl;
return 0;
}
Passo 1
O programa lê dois inteiros
x
e y
, garante que x
seja o menor (fazendo troca se necessário) e depois usa um laço do…while
para somar todos os valores de x
até y
(inclusive) em w
. Por fim, imprime w
.Passo 2
A condição
verifica se o segundo valor é menor que o primeiro. Se for, o programa faz a troca
verifica se o segundo valor é menor que o primeiro. Se for, o programa faz a troca
assim sempre teremos
.
Passo 3
Em seguida vem o laço
Isso significa que
começa em
, soma-se
em
, incrementa
e repete enquanto
. Ou seja, faz a soma de todos os inteiros de
até
.
Passo 4
Para a entrada
,
não ocorre troca (pois
). O laço soma
Passo 5
Para a entrada
,
ocorre troca (pois
), virando
,
. O laço soma
Passo 6
Para a entrada
,
não há troca e o .
do…while
faz exatamente uma iteração, somando apenas
Resposta
Para entrada
,
: saída será
.
Para entrada ,
: saída será
.
Para entrada ,
: saída será
.
Para entrada
Para entrada