Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
3x5=15
2x5=10
Правильных ответов: 9
Оценка: Хорошо.
131. Написать программу проверки умения складывать и вычитать числа в пределах 100. Профамма должна вывести 10 примеров, причем в каждом примере уменьшаемое должно быть больше или равно вычитаемому, т. е. не допускается предлагать испытуемому примеры с отрицательным результатом. Оценка выставляется по следующему правилу: за 10 правильных ответов — "отлично", за 9 и 8 — "хорошо", за 7 и 6 — "удовлетворительно", за 6 и менее — "плохо". Ниже приведен рекомендуемый вид экрана во время работы профаммы. Ответы пользователя выделены полужирным шрифтом.
Проверка умения складывать и вычитать числа.
После примера введите ответ и нажмите <Enter>
75-4=71
35-9=29
Вы ошиблись! 35-9=26
14-1=13
6-5=1
37-19=28
Вы ошиблись! 37-19=18
53-14=39
94-87=7
90-16=74
4-2=2
89-41=48
Правильных ответов: 8
Оценка: Хорошо
Цикл с предусловием while
Используется в случае, если не известно количество повторов тела цикла. При использовании цикла с предусловием тело цикла может не выполниться ни разу.
Синтаксис:
while(условие)
{
<тело цикла>
}
Если условие истинно выполняется тело цикла.
Пример. Вычислить среднюю из 10 оценок.
#include <iostream. h>
int main (void)
{
int oc;
int i = 1; //при описании сразу присваиваем нач. значение
int sum = 0; //при описании сразу присваиваем нач. значение
while (i<=10)
{
cout << "Введите очередную оценку: ";
cin >> oc;
sum +=oc;
i++; //увеличить i на единицу
}
cout << "Средняя оценка равна " << sum/10.0 << endl << endl;
}
Посчитать среднюю оценку в группе состоящей из неизвестного количества студентов.
В цикле
{
1) ввести оценку
2) прибавить к сумме
3) увеличить счетчик оценок на единицу
}
3) посчитать среднее делением суммы на количество оценок.
4) вывести среднюю оценку
условием выполнения цикла будет ввод оценки в интервале 0-5. Если введено
число меньше 0 или больше 5, это признак окончания ввода.
#include <iostream. h>
#include <iomanip. h>
int main (void)
{
int oc = 0; //при описании сразу присваиваем нач. значение
int i = 1; //при описании сразу присваиваем нач. значение
int sum = 0;
cout << "Введите очередную оценку или код выхода: ";
cin >> oc;
while ((oc>=0) && (oc<=5))
{ //фигурная скобка объединяет несколько операторов в составной
sum +=oc;
i++; //увеличить i на единицу
cout << "Введите очередную оценку или код выхода: ";
cin >> oc;
}
if (i!=0) //необходима проверка, чтобы избежать деления на 0
cout << "Средняя оценка равна " << setprecision(2)
<< setiosflags(ios::fixed | ios::showpoint)
<< (float) sum/i << endl << endl;
else
cout << "Оценки не введены" << endl << endl;
}
Без фигурной скобки после while операторы
i++; //увеличить i на единицу
cout << "Введите очередную оценку или код выхода: ";
cin >> oc;
выпали бы из цикла.
Среднее значение выражается не всегда целыми числами. Деление целого sum
на целое i дает среднее без дробной части. Нам необходимо получить не целый результат. Поэтому один из операндов преобразуется к вещественному типу оператором (float)sum.
cout << "Средняя оценка равна " << setprecision(2)
<< setiosflags(ios::fixed | ios::showpoint)
<< (float) sum/i << endl << endl;
setprecision(2) - манипулятор с параметром, определяющий вывод (2 цифры после десятичной точки.).
Манипуляторы с параметром описаны в файле iomanip. h. Поэтому
#include <iomanip. h>
setiosflags(ios::fixed | ios::showpoint) - манипулятор с параметром для определения способа вывода числа ios::fixed - вывод в формате с фиксированной точкой.
ios::showpoint — показывать точку даже если результат целый.
Например, для 88 будет выведено 88.00, а для 22.256 - 22.26.
Пример. Имеется информация о 10 студентах прошлого года, которые сдавали экзамен. Написать программу подсчета количества студентов, сдавших экзамен на оценку >3 и количества студентов на оценку <=3. Если судентов второй группы больше 7, то вывести "Экзамен слишком сложен".
1) Нужен счетчик count введенных оценок;
2) Нужен счетчик good студентов сдавших на >3:
3) Нужен счетчик bad студентов сдавших на <=3:
В цикле
{
4) ввести оценку;
5) учесть ее в одном из счетчиков good или bad;
6) count += 1;
}
7) если bad>7 тогда вывести "Экзамен слишком сложен"
#include <iostream. h>
int main (void)
{
int count = 1;
int good = 0, bad = 0;
int oc;
while (count<=10)
{
cout << "Введите оценку ";
cin >> oc;
if (oc>3) good++; //good=good+1; //good+=1// good += +1;
else bad++;
count++;
}
cout << "Сдали на 4 и 5 " << good << endl;
if (bad>7) cout << "Экзамен слишком сложен" << endl;
return 0;
}
Пример. Найти сумму чисел от 1 до 10, используя while
i = 1;
sum =0;
while (i <= 10)
{
sum += i;
i++;
}
лучше так
i = 1;
sum =0;
while (i <= 10)
sum += i++;
или так
i = 0;
sum =0;
while (++i <=10)
sum += i;
То же самое с помощью for
int i, sum;
for (i=1, sum=0; i<=10; i++)
sum+=i;
или так
for (int i=1, sum=0; i<=10; sum+=i, i++)
;
Оператор for
for(выражение1; выражение2; выражение3)
оператор;
можно обычно представить в виде while следующим образом:
выражение1;
while( выражение2 )
{
оператор;
выражение3;
}
Просуммировать все четные числа от 2 до 100.
int i, sum;
for (i=2, sum=0; i<=100; i=i+2)
sum+=i;
или так
for (int i=2, sum=0; i<=100; sum+=i, (i++)++) ;
Задачи
141. Напишите программу, которая вычисляет число "Пи" с заданной пользователем точностью. Для вычисления значения числа "Пи" воспользуйтесь тем, что значение частичной суммы
ряда 1-1/3+1/5-1/7+1/9-... при суммировании достаточно большого количества членов приближается к значению 7т/4. Рекомендуемый вид экрана во время выполнения программы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).
Задайте точность вычисления ПИ -> О.001
Значение числа ПИ с точностью 0.001000 равно 3.143589
Просуммировано 502 члена ряда.
142. Написать программу, которая вычисляет наибольший общий делитель двух целых чисел. Рекомендуемый вид экрана во время выполнения профаммы приведен ниже (данные, введенные пользователем, выделены полужирным шрифтом).
Пример. Например, написать программу которая считает сколько букв 'f' в введенном тексте. Ввод с клавиатуры будет осуществляться посимвольно в переменную типа char. Переменная типа char служит для хранения символа (наименьшего элемента строки). Для определения конца ввода в MSDOS используется символ EOF (с клавиатуры Ctrl+z). Поскольку этот символ тоже помещается в буфер ввода, то цикл для этого символа выполнится, но содержимое переменной c не изменится. Поэтому, если во введенной последовательности последний символ f, то он будет посчитан дважды. Эту особенность необходимо учитывать только при вводе символов. При вводе переменных другого типа этого делать не нужно.
Для того, чтобы избежать этой ошибки при вводе символов в переменную c заносится '\0' — символ с кодом ноль (пустой символ).
#include <iostream. h>
int main (void)
{
char c;
int cf=0;
while (!cin. eof() )
{
cin >> c;
if (c=='f') cf++;
c='\0'; // без этой строки работать правильно не будет. Если последний введенный
// символ f, то он будет считаться 2 раза
}
cout << cf;
return 0;
}
Например, написать программу, которая считает сколько пробелов, переносов строки и цифр во введенном тексте. Для определения конца ввода в MSDOS используется символ EOF (с клавиатуры Ctrl+z).
#include <iostream. h>
int main (void)
{
char c;
int cpr, cc, cps;
cpr = cc = cps = 0;
while (!cin. eof() )
{
cin >> c;
switch (c)
{
case ' ': cpr++; break;
case '\n': cps++; break;
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9': case '0':
cc++; break;
c='\0'; // без этой строки работать правильно не будет
// если последний введенный символ f
// (последняя f будет считаться 2 раза)
}
}
cout << "пробелов " << cpr << " переносов строки " << cps
<< " цифр" << cc;
return 0;
}
Цикл с постусловием
Синтаксис:
do
{
тело цикла
}
while(условие повторного выполнения тела цикла);
Оператор аналогичен команде языка VB
DO
тело цикла
LOOP WHILE условие
Тело цикла с постусловием выполнится хотя бы раз.
Пример. Сложить числа от 1 до 10
sum=0; i=1;
do
{
sum += i;
++i;
}
while (i <= 10);
sum=0; i=1;
do
{
sum += i;
}
while (++i<=10);
sum=0; i=1;
do
{
sum += i;
}
while (i++ < 10);
4. Операторы изменения потока управления
4.1 goto — переход на указанную метку (метка имеет имя).
trum: ....
.......
goto trum;
4.2. continue приводит к прекращению текущей итерации и началу следующей итерации в циклах.
4.3. break — при использовании в for, while, do while и switch приводит к немедленному выходу из этих конструкций.
Лучше избегать использования break и continue в циклах, что улучшит читаемость программы.
Использование break в switch необходимо и рассматривалось ранее.
Лекция 5. Массивы
При использовании простых переменных каждой области памяти для хранения данных соответствует свое имя. Если с группой величин одинакового типа требуется выполнить однообразные действия, им дают одно имя, а различают по порядковому номеру. Это позволяет компактно записывать множество операций с помощью циклов. Конечная
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |


