Escolar Documentos
Profissional Documentos
Cultura Documentos
Saída ☆
1. (atribquad) Escreva uma função chamada atribquad() que recebe
como parâmetro um numero
real representando a medida do lado de um quadrado, devolvendo 3
valores: a área, o perímetro e o
tamanho da diagonal (dada por lado × √2).
int main ( )
{
float lado;
cout << "Insira a medida do lado do quadrado: ";
cin >> lado;
atribquad (lado);
return 0;
}
int tempojogo (int h1, int & min1, int h2, int min2)
{
int t1, t2, t;
h1 = h1 * 60;
t1 = h1 + min1;
h2 = h2 * 60;
t2 = h2 + min2;
t = t2 - t1;
min1 = t;
if (t > 210) //Equivalente a 3h30
return 1;
else
return 0;
}
int main ( )
{
int h1, h2, min, min2, total;
total = tempojogo (h1, min, h2, min2); //min vai passar mins da
partida
if (total == 1)
cout << "O tempo entre os horarios foi maior que 3h30,
porque foi de ";
else
cout << "O tempo entre os horarios foi menor que 3h30,
porque foi de ";
return 0;
}
3. (maxPot) Crie uma função chamada maxpot() que recebe como
parâmetros três inteiros: X, Y
e MAX. Esta função deve devolver 2 valores: o resultado de XY e o
valor 1 (um) se este valor
calculado for menor que MAX, ou 0 (zero) caso contrário.
void ordena ( int & num1, int & num2 ) //Ordena de forma que num1 é
sempre menor
{
int tmp;
int main ( )
{
int A, B, C;
cout << "Insira tres numeros inteiros: ";
cin >> A >> B >> C;
dn-1...d4 d3 d2 d1 d0
OBS1: note que o dígito "mais à esquerda" pode ser 0. Por exemplo, o
código 054321 tem as mesmas dezenas do código 54321.
Note também que para trabalhar com uma quantidade maior de dígitos o
programa deve usar algumas variáveis inteiras de 64 bits (tipo long
long).
OBSERVAÇÕES:
Todos os dados digitados devem ser lidos e exibidos na tela com cin
e cout usados apenas no programa principal (main).
Digite o codigo: 6
O codigo tem 1 digito(s)
O codigo tem 1 dezena(s)
O codigo nao tem repeticoes
Digite o codigo: 0
O codigo deve ser maior que 0
if (vpar % 2 == 0)
vpar = vpar / 2;
else
vpar = (vpar + 1) / 2;
return vpar;
}
cont = 0;
while (cont < n) {
dezn = d % 100;
d = d - dezn;
cont = cont + 1;
}
return dezn;
}
guarepet = 0;
n = 0;
while (n < nd) {
compara = dezena (d, n);
//Compara a dezena n calculada com as outras do código
m = 0;
while (m < nd) {
compara2 = dezena (d, m);
if (compara == compara2)
qntrepet = qntrepet + 1;
}
//Compara as repetições da dezena mais repetida e a nova
if (qntrepet > guarepet) {
guarepet = qntrepet;
qualrepet = compara;
}
n = n + 1;
}
//Determina se houve repetição pela presença da dezena mais
repetida
if (qualrepet != 0)
return 1;
else
return 0;
}
int main()
{
int dig, numdez, repet, qualrepet, qntrepet;
long long d;
if (d == 0) {
cout << "O codigo deve ser maior que 0";
return 0;
}
qualrepet = 0;
qntrepet = 0;
repet = temRepeticoes (d, qualrepet, qntrepet);
if (repet == 1) {
cout << "O codigo tem repeticoes" << endl;
cout << "A dezena mais repetida eh " << qualrepet << "e
repete " << qntrepet<< " vezes" << endl;
}
else
cout << "O codigo nao tem repeticoes";
return 0;
}
Ex. 2 - Contabiliza
Faça um programa em C++ chamado contabiliza que leia uma sequência
indeterminada de conjuntos de 2 (três) números inteiros até que seja
digitado o conjunto 0 0 (dois zeros). O programa deve ao final
imprimir 3 (três) valores que representam as quantidades de
conjuntos que estão na ordem:
crescente, decrescente, e neutra, e também o maior
intervalo dentre todos os conjuntos de números (dado pela diferença
absoluta entre o maior e o menor número do conjunto). Ordem neutra
é quando o conjunto contém números iguais. Seu programa deve usar a
função chamada contabiliza(), que recebe 6 (seis) parâmetros: os 2
(dois) números de um conjunto, e as 3 (três) quantidades a serem
contabilizadas. A função contabiliza() retorna o valor do intervalo
do conjunto. Se os primeiros números digitados forem 0 0, a saída do
programa deve ser Sem conjunto de valores.
Exemplo 1:
Digite sequencia de 2 inteiros:
1 2
3 2
2 2
1 2
1 3
2 1
3 6
0 0
Quantidade ordem crescente: 4
Quantidade ordem decrescente: 2
Quantidade ordem neutra: 1
3 6 eh o maior intervalo: 3
Exemplo 2:
Digite sequencia de 2 inteiros:
1 1
-1 2
0 0
Quantidade ordem crescente: 1
Quantidade ordem decrescente: 0
Quantidade ordem neutra: 1
-1 2 eh o maior intervalo: 3
Exemplo 3:
Digite sequencia de 2 inteiros:
1 2
9 1
0 0
Quantidade ordem crescente: 1
Quantidade ordem decrescente: 1
Quantidade ordem neutra: 0
9 1 eh o maior intervalo: 8
Exemplo 4:
Digite sequencia de 2 inteiros:
0 0
void contabiliza (int n1, int n2, int & cresc, int & decresc, int &
neutra, int & i)
{
//Valores da ordem crescente, decrescente ou neutra
if (n1 < n2)
cresc = cresc + 1;
else if (n1 > n2)
decresc = decresc + 1;
else
neutra = neutra + 1;
int main()
{
int num1, num2, cresc, decresc, neutra, interv;
int savenum1, savenum2, saveinterv;
cresc = 0;
decresc = 0;
neutra = 0;
saveinterv = 0;
cout << "Quantidade ordem crescente: " << cresc << endl;
cout << "Quantidade ordem decrescente: " << decresc << endl;
cout << "Quantidade ordem neutra: " << neutra << endl;
cout << savenum1 << " " << savenum2 << " eh o maior intervalo:
" << interv;
return 0;
}
Exemplo 1:
Digite a lista de numeros: 153 0
Primeiro = 1
Ultimo = 3
Exemplo 2:
Digite a lista de numeros: 153 -1 14 93084 1 0
Primeiro = 1
Ultimo = 3
O numero deve ser positivo
14 tem 2 digitos
Primeiro = 1
Ultimo = 4
Primeiro = 9
Ultimo = 4
1 tem 1 digitos
Primeiro = 1
Ultimo = 1
Exemplo 3:
Digite a lista de numeros: 0
ultimo = n % 10;
int main()
{
int num, digitos, primeiro, ultimo, soma3;
if (num == 0) {
cout << "Nao foram fornecidos numeros";
return 0;
}
soma3 = 0;
while (num != 0) {
if (num < 0)
cout << "O numero deve ser positivo" << endl;
else {
digitos = analisaDigitos (num, primeiro, ultimo);
cout << num << " tem " << digitos << " digitos" <<
endl;
cout << "Primeiro = " << primeiro << endl;
cout << "Ultimo = " << ultimo << endl;
}
cout << "Soma dos numeros com uma quantidade de digitos menor
que 3: " << soma3 << endl;
return 0;
}