Семинар 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; }
|