Опубликован: 14.12.2010 | Уровень: для всех | Доступ: платный
Лекция 5:

Принятие решений. Условные операторы в языке С

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >

Задание 5

  1. При выводе максимального числа предусмотрите сообщение об имени числа, т.е. a или b.
  2. В цикле сформируйте вектор десяти случайных чисел из интервала [0;1] и выведите на дисплей.
  3. Для задания системного времени примените директиву define N X, где Х – номер компьютера, за которым выполняется лабораторная работа.
  4. Примените оператор условия ? для определения абсолютного значения вещественного числа, которое должно вводиться пользователем с клавиатуры.

Пример 6. Используя оператор условия ? и переключатель switch напишите программу определения времени года по вводимым числам от 1 до 12, считая, что цифра 1 соответствует январю, цифра 2 – февралю и т.д.

Программный код решения примера:

#include <stdio.h>
#include <conio.h>

int main (void) {
int x;
printf("\n\t Enter a whole number between 1 and 12: ");
scanf_s("%d", &x);

switch (x > 0 && x < 3 ? 1 : 
		x == 12 ? 1 :
		x > 2 && x < 6 ? 2 :

		x > 5 && x < 9 ? 3 :
		x > 8 && x < 12 ? 4 :
		x > 12 || x < 1 ? 5 : 5)
{
case 1 :
	printf("\n\t This Winter\n");
	break;
case 2 :
	printf("\n\t This Spring\n");
	break;
case 3 :
	printf("\n\t This Summer\n");
	break;
case 4 :
	printf("\n\t This Autumn\n");
	break;
case 5 :
	printf("\n\t This is a mistake (Error)\n");
}
	printf("\n Press any key: ");
	_getch();
	return 0;
}

В программе три месяца зимы кодируются цифрой 1, три месяца весны –цифрой 2, три месяца лета – цифрой 3, три месяца осени – цифрой 4. Если введенная цифра не входит в целочисленный интервал [1; 12], то эта ситуация кодируется цифрой 5.

Возможный результат выполнения программы показан на рис. 4.6.

Результат программы по определению времени года

Рис. 4.6. Результат программы по определению времени года

Задание 6

  1. Проверьте программу по вводимым вещественным числам. Объясните результат.
  2. Проверьте программу по вводимым буквам или знаков, имеющихся на клавиатуре. Объясните результат.
  3. В программе вместо 5-го пункта, т.е. вместо case 5, примените операцию default.
  4. Напишите программу определения времени года по вводимым числам без операторов условия ?.

Пример 7. Напишите программу распечатки четных целых чисел от 0 до 30.

#include <stdio.h>
#include <conio.h>

int main (void)
 {
	int x;
	printf("\n\t Even numbers from 0 to 30:\n\n");
	
    for (x = 0; x < 31; x++)  {
	if ( x % 2 ) continue; 
     printf("\t\t %3d\n", x); 
     }

	printf("\n Press any key: ");
	_getch();
	return 0;
}

В программе в качестве проверки условия использовано деление по модулю ( х%2 ). Если остаток от деления числа х не равен нулю, то утверждение (оператор, инструкция) continue передает управление непосредственно инструкции, проверяющей условное выражение, после чего циклический процесс продолжается. С помощью программы выводятся только четные числа, а при обнаружении нечетного числа происходит преждевременный переход к следующей итерации цикла, и функция printf() опускается. Функция printf() включена в тело цикла оператора for.

Результат выполнения программы показан на рис. 4.7.

Результат вывода четных чисел

Рис. 4.7. Результат вывода четных чисел
< Лекция 4 || Лекция 5: 12345 || Лекция 6 >
Мухаммадюсуф Курбонов
Мухаммадюсуф Курбонов
Александр Соболев
Александр Соболев
Россия
Артем Полутин
Артем Полутин
Россия, Саранск