Программирование на языке высокого уровня Для студентов очно-заочной формы обучения
Лекцию читает Шумова Елена Олеговна доцент кафедры автоматизированных систем обработки информации и управления (АСОИ и У) shumovaeo@list.ru
Лекция 2 Операторы управления Массивы Условный оператор if Форма записи: if (выражение) оператор1 else оператор2
Блок-схема оператора
#include void main() { int k; cout << “Введите целое число=“; cin >> k; if ( k > 5) cout << “Вы закончили\n”; // 1 else cout << “Вы потеряли ход\n”; // 2 cout << “Конец программы\n”; // 3 }
Результаты работы Введите целое число = 10 Вы закончили Конец программы Введите целое число = 3 Вы потеряли ход Конец программы
#include void main() { int k; cout << “Введите целое число=“; cin >> k; if ( k > 5) if ( k > 10) cout << “Вы закончили\n”; // 1 else cout << “Вы потеряли ход\n”; // 2 cout << “Конец программы\n”; // 3 }
Результаты работы Введите целое число = 3 Конец программы Введите целое число = 7 Вы потеряли ход Конец программы Введите целое число = 15 Вы закончили Конец программы
#include void main() { int k; cout << “Введите целое число=“; cin >> k; if ( k > 5) { if ( k > 10) cout << “Вы закончили\n”; // 1 } else cout << “Вы потеряли ход\n”; // 2 cout << “Конец программы\n”; // 3 }
Результаты работы Введите целое число = 3 Вы потеряли ход Конец программы Введите целое число = 7 Конец программы Введите целое число = 15 Вы закончили Конец программы
Оператор switch switch (выражение) { case метка 1: оператор1; [break;] case метка 2: оператор 2; [break;] . . . case метка N: оператор N; [break;] [default: оператор N+1;] }
Пример #include void main() { int x, rez; cout << “Введите степень числа 2 =”; cin >> x; switch (x) { case 2: rez = 2*2; cout << “2 в степени 2 = ” << rez << endl; break;
case 3: rez = 2*2*2; cout << “2 в степени 3 = “ << rez << endl; break; case 4: rez = 2*2*2*2; cout << “2 в степени 4 = “ << rez << endl; break; default: cout << “Вводите степень от 2 до 4\n”; } cout << “ Конец программы\n”; }
Результаты работы (с операторами break) Введите степень числа 2 = 3 2 в степени 3 = 8 Конец программы Введите степень числа 2 = 4 2 в степени 4 = 16 Конец программы Введите степень числа 2 = 6 Вводите степень от 2 до 4 Конец программы
Результаты работы ( без break) Введите степень числа 2 = 3 2 в степени 3 = 8 2 в степени 4 = 16 Вводите степень от 2 до 4 Конец программы Введите степень числа 2 = 4 2 в степени 4 = 16 Вводите степень от 2 до 4 Конец программы
Оператор цикла do while Форма записи: do оператор while (выражение);
Расчет суммы нечетных чисел от 0 до 10. #include void main() { int n=1,sum=0; do { sum += n; cout << “ Сейчас n = “ << n << “\t sum = “ << sum << “\n”; n += 2; } while (n <= 10); cout << “ \n\nОтвет: sum = “ << sum <<“\n”; }
Результат работы Сейчас n = 1 sum = 1 Сейчас n = 3 sum = 4 Сейчас n = 5 sum = 9 Сейчас n = 7 sum = 16 Сейчас n = 9 sum = 25 Ответ sum = 25
Оператор цикла while Форма записи: while (выражение) оператор
Расчет суммы чисел от 1 до 5 #include void main() { int n=1,sum=0; while (n <= 5) { sum += n; // sum = sum +n; cout << “ Сейчас n = “ << n << “\t sum = “ << sum <<“\n”; n++; } cout << “ \nОтвет: sum = “ << sum <<“\n”; }
Результат работы Сейчас n = 1 sum = 1 Сейчас n = 2 sum = 3 Сейчас n = 3 sum = 6 Сейчас n = 4 sum = 10 Сейчас n = 5 sum = 15 Ответ: sum = 15
Оператор цикла for Форма записи: for (иниц.выр-е.; усл.выр-ние ;коррекция) оператор
Подсчет суммы четных чисел от 0 до 10 #include void main() { int n, sum; for ( n = 2, sum = 0; n <= 10; n+=2) { sum += n; cout << “Сейчас: n = “ << n << “\t sum = “<< sum << “\n”; } cout << “\n\nОтвет: sum = “ << sum << “\n”; }
Результат работы Сейчас n = 2 sum = 2 Сейчас n = 4 sum = 6 Сейчас n = 6 sum = 12 Сейчас n = 8 sum = 20 Сейчас n = 10 sum = 30 Ответ: sum = 30
Операторы безусловной передачи управления break используется - в операторе switch; - в теле любого оператора цикла continue используется в теле операторов цикла. В результате управление передается: for - передает управление на коррекцию while, do … while – на вычисление выражения
goto – передача управления на оператор, помеченный меткой goto mmm: … mmm: x =10;
return - возврат
Тестовые задания Требуется определить результат работы #include // Задание 1 void main() { int a=10, b=42, c=-1; if ( a { c = a + b; cout << "a=" << a << " b=" << b << " c=" << c << endl; } else { c = b - a; cout << "a=" << a << " b=" << b << " c=" << c << endl; } }
#include // Задание 2 void main() { int a=3; switch (a) { case 1: cout << "Пойди туда," case 2: cout << "не знаю куда.\n"; case 3: cout << "Принеси то, "; case 4: cout << "не знаю что.\n; } cout << "Пока\n"; }
#include // Задание 3 void main() { int i=5; do { cout << "i = " << i << endl; i += 25; } while ( i < 90); }
#include // Задание 4 void main() { int i=20; while( i < 10) { cout << "i = " << i << endl; i += 30; } cout << "Итог i = " << i << endl; }
#include // Задание 5 void main() { int i,s=0; for ( i=1; i < 4; i++) { s += 3*i; cout << "s = " << s << endl; } cout << "Итог: s = " << s << endl; }
Массивы Массив – это расположенные вплотную друг за другом элементы одного и того же типа. float d[5]; int a[3][4]; 0 1 2 3 4 0 1 2 3
Пример: Дан целочисленный массив d[5]. Определить сумму всех элементов массива #include #include void main() { int d[5], i, sum; cout << "Ввод данных в массив:\n"; for (i=0; i <5; i++) { cout << "d[" << i << "]="; cin >> d[i]; }
// расчет суммы for(i=0, sum=0; i<5; i++) { sum = sum + d[i]; cout << “При i = “ << i << “\t sum = “ << sum<< endl; } cout << "Исходный массив d \n"; for (i=0; i<5; i++) cout << setw(5) << d[i]; cout << "\n\nСумма = " << sum << endl; }
Результат работы программы: Ввод данных в массив: d[0]= 2 d[1] = 5 d[2] = 3 d[3] = 5 d[4] = 4 При i = 0 sum = 2 При i = 1 sum = 7 При i = 2 sum = 10
При i = 3 sum = 15 При i = 4 sum = 19 Исходный массив d: 2 5 3 5 4 Сумма = 19
Пример: Дан целочисленный массив a[3][5]. Определить сумму всех элементов массива int a[3][5], i, j; Ввод данных : 1) Ввод элемента: cout << “Введите а[0][0]=“; cin >> a[0][0]; 2) Ввод нулевой строки: for (j = 0; j<5; j++) { cout << “a[0][ “ << j << “]=“; cin >> a[0][j]; }
Вывод данных на экран: for (i = 0; i < 3; i++) for (j = 0; j < 5; j++) cout << a[i][j]; Результат работы: 10251315427321… for (i = 0; i < 3; i++) for (j = 0; j < 5; j++) cout << a[i][j] << “ “; Результат работы: 10 251 3 15 4 2 7 321…
for (i=0; i<3; i++) { for (j=0; j<5; j++) cout << a[i][j] << “ “; cout << endl; } Результат работы: 10 251 3 15 4 2 7 321 5 1 111 24 151 87 311
for (i=0; i<3; i++) { for (j=0; j<5; j++) cout << setw(5) << a[i][j]; cout << endl; } Результат работы: 10 251 3 15 4 2 7 321 5 1 111 24 151 87 311
#include #include void main() { int a[3][5], sum, i, j; cout << “Ввод элементов массива\n"; for (i=0; i<3; i++) for (j=0; j<5; j++) { cout << "a[" << i << "][" << j << "]="; cin >> a[i][j]; }
sum=0; for (i=0; i<3; i++) for ( j=0; j<5; j++) sum += a[i][j]; cout << " Исходный массив a\n"; for ( i=0; i < 3; i++) { for (j=0; j < 5; j++) cout << setw(5) << a[i][j]; cout << endl; } cout << "\nСумма эл-тов = " << sum << endl; }
|