Семинар 6

6.1

Пользователь вводит с клавиатуры последовательность из 10 натуральных чисел. Программа должна сообщить каких чисел встретилось больше: чётных, нечётных, либо их поровну. Если введено не натуральное число, то программа должна сообщить о некорректном вводе и попросить снова ввести подходящее натуральное число.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a,i=1,chet=0,nechet=0;
while(i<=10) {
cout << "Vvedite " << i << " chislo: ";
cin >> a;
if(a>0) {
if(a%2==0) {
chet++;
}
else {
nechet++;
}
i++;
} else {
cout << "Vi vveli ne naturalnoje chislo. Povtorite vvod" << endl;
}
}
if(chet>nechet) {
cout << "Chetnih chisel boljshe" << endl;
} else if(chet<nechet) {
cout << "Nechetnih chisel boljshe" << endl;
} else {
cout << "Kolichestvo chetnih i nechetnih chisel odinakovo" << endl;
}
return 0;
}

6.2.

Пользователь вводит с клавиатуры последовательность из 8 целых чисел. Программа должна вывести на экран длину максимальной строго возрастающей подпоследовательности. Если такая отсутсвует, то сообщить об этом.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
int length=1, maxlength=0,ch1=0,ch2=0;
cout << "Vvedite " << 1 << " chislo: ";
cin >> ch1;
for(int i=2; i<=8; i++) {
cout << "Vvedite " << i << " chislo: ";
cin >> ch2;
if(ch1<ch2) {
length++;
cout << length << endl;
if(length>maxlength) {
maxlength = length;
}
} else {
length=0;
}
ch1 = ch2;
}
if(maxlength>0) {
cout << "Maximalnaya dlina vozrastajushej posledovatelnosti ravna: " << maxlength << endl;
} else {
cout << "Vozrastajushih posledovatelnostej ne obnarujeno" << endl;
}
return 0;
}

6.3.

Пользователь вводит с клавиатуры последовательность ненулевых целых чисел. Программа должна вывести на экран среднее арифметическое элементов этой последовательности сразу после того, как пользователь введёт 0 (т.е. заранее длина последовательности неизвестна).

#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a,sum=0,i=0;
double arifm;
do {
cout << "Vvedite chislo: ";
cin >> a;
if(a==0) {
break;
}
sum += a;
i++;
} while(true);
cout << "i=" << i << ", sum=" << sum << endl;
arifm = (double)sum/i;
cout << "Srednee arifmeticheskoje ravno: " << arifm;
return 0;
}

6.4.

Пользователь вводит с клавиатуры последовательность ненулевых целых чисел. Программа должна вывести на экран максимальный и минимальный элементы последовательности сразу после того, как пользователь введёт 0 (т.е. заранее длина последовательности неизвестна).

#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a, max=0, min=0;
bool first = true;
do {
cout << "Vvedite chislo: ";
cin >> a;
if(a==0) {
break;
}
if(!first) {
if(a>max) {
max = a;
}
if(a<min) {
min = a;
}
} else {
max = a;
min = a;
first = false;
}
} while(true);
cout << "Minimum: " << min << endl;
cout << "Maximum: " << max << endl;
return 0;
}

6.5

Пользователь вводит с клавиатуры арифметический пример в таком формате «2+3.5» или «3.14*8», программа должна вычислить и вывести правильный ответ на экран. В примере должны быть допустимы операции сложения, умножения, вычитания, сложения. После вывода ответа программа должна спросить, требуется ли решить другой пример. Если пользователь введёт «y» программа должна запуститься повторно, иначе — завершиться.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a,b;
char operand, answer;
do {
cout << "Vvedite primer: ";
cin >> a;
cin >> operand;
cin >> b;
if(operand=='*') {
cout << "Otvet: " << a*b << endl;
} else if(operand=='/') {
cout << "Otvet: " << a/b << endl;
} else if(operand=='+') {
cout << "Otvet: " << a+b << endl;
} else if(operand=='-') {
cout << "Otvet: " << a-b << endl;
} else if(operand=='^') {
cout << "Otvet: " << pow(a,b) << endl;
} else {
cout << "Bad operand, try again" << endl;
}
cout << "Continue?: ";
cin >> answer;
} while(answer=='y');
return 0;
}

Free Web Hosting