- •23.4F 67.7e-24f - float
- •89UL 89Lu 89ul 89 lu - unsigned short
- •Void main ()
- •Void main ( )
- •Void main ( )
- •Void textbackground (int bkcolor);
- •Void textcolor (int txcolor);
- •Void clrscr ();
- •If (условие) оператор1; else оператор2;
- •If (условие) оператор;
- •If (X) оператор;
- •If (выражение1) оператор1;
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
If (X) оператор;
В этом случае условие в операторе if представляет собой не логическое выражение, а переменную, которой предварительно присваивается какое-либо значение. Если значение переменной отлично от нуля, то условие истинно, если значение переменной равно нулю, то условие ложно.
Т.к. в качестве внутренних в операторе if могут использоваться любые операторы, следовательно, в нем допустимо использование вложенных конструкций:
If (выражение1) оператор1;
else if (выражение2) оператор2;
…
else if (выражениеN) операторN;
else оператор_по_умолчанию; // необязательная часть
Однако во избежание неоднозначного толкования программы следует пользоваться фигурными скобками для выделения вложенностей в единые блоки, т.к. в подобных конструкциях else связывается с ближайшим предыдущим if.
Если в программе необходимо выбрать один из многочисленных вариантов, то вместо вложенной конструкции if целесообразнее применять оператор-переключатель switch, называемый оператором выбора или варианта, который имеет вид:
switch (выражение)
{
case n1 : оператор1; break;
case n2 : оператор2; break;
case nk : операторК; break;
default : операторN; break;
}
Выполнение оператора варианта начинается с вычисления значения выражения (селектора). Затем оператор выбора передает управление тому оператору, перед которым стоит константа, совпадающая с вычисленным значением переключателя switch. Если совпадений не обнаружено, выполняется оператор, стоящий после default. Например,
switch (i)
{
case l: x=0; break;
case 2: x=2*x; break;
case 100: x=sin (x); break;
default: x=cos(x); break;
}
z=x; …
В этом примере, если селектор i, предположим, принимает значение 100, то выполняется оператор x=sin(x), после чего управление передается оператору z=x.
Допускается конструкция switch, в которой оператор default может отсутствовать. Оператор break, расположенный в каждой ветви оператора варианта, предписывает завершить выполнение текущего оператора и передать управление следующему оператору программы. Отсутствие оператора break предписывает программе продолжать выполнение до первого оператора break либо до конца оператора switch.
Альтернативой оператору условного перехода в С++ является троичный условный оператор ?: - единственный оператор, который работает с тремя операндами. Этот оператор получает три выражения и возвращает значение:
(выражение1) ? выражение2: выражение3;
Выполнение оператора начинается с вычисления выражения1. Если выражение истинно, то результатом будет являться значение выражения2, в противном случае результатом будет значение выражени3. Например, оператор mах = (х>у) ? х: у; определяет наибольшее из двух чисел х и у.
2.3 Задания к лабораторной работе
2.3.1 Составить блок-схему и два варианта программы для вычисления заданной величины (с использованием библиотек stdio и iostream). Текст программы должен содержать все необходимые комментарии, а для создания наглядного и удобного пользовательского интерфейса следует использовать форматный ввод-вывод с комментариями.
В вариантах 1 – 18 вычислить:
1. Площадь параллелограмма.
2. Объем параллелепипеда.
3. Через сколько времени после начала движения нормальнее ускорение an точки будет вдвое больше тангенциального, если известно, что точка движется по окружности радиусом R с постоянным тангенциальным ускорением at?
4. Площадь треугольника, если известна длина основания и высоты.
5. Площадь треугольника, если известны длины двух его сторон и величина угла между этими сторонами.
6. Общее сопротивление электрической цепи, состоящей из двух последовательно соединенных сопротивлений.
7. Силу тока в электрической цепи по известным значениям напряжения и сопротивления.
8. Расстояние между населенными пунктами, изображенными на карте с учетом ее масштаба.
9. Действительные корни квадратного уравнения с заданными коэффициентами, с положительным дискриминантом.
10 Скорость, с которой бегун пробежал заданную дистанцию с учетом времени бега.
11. Объем пирамиды, заданных размеров.
12. Площадь поверхности шара.
13. Стороны равнобедренного прямоугольного треугольника, если известно значение высоты h, опущенной на гипотенузу.
14. Высоту равностороннего треугольника с заданными сторонами.
15. Сумму цифр числа n.
16. Сопротивление электрической цепи, состоящей из двух параллельно соединенных сопротивлений.
17. Произведение цифр числа k.
18. Среднюю скорость автомобиля, который одну часть пути движется со скоростью v1, а другую – со скоростью v2.
В вариантах 19 – 30 выполнить перевод:
19. Заданной величины угла из радианной меры в градусную.
20. Скорости ветра из «метров в секунду» в «километры в час».
21. Температуры в градусах Кельвина в градусы Фаренгейта и Цельсия.
22. Заданного расстояния (в метрах) в русские неметрические единицы длины: версты и сажени.
23. Заданной величины в метрические единицы с префиксами фемто, нано, микро, гекто.
24. Величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.
25. Заданного веса (в кг) в следующие единицы: фунты и унции.
26. Заданного расстояния (в км) в следующие единицы длины: мили и ярды.
27. Мощности (в Вт) в величины, выраженные в лошадиных силах и эрг/сек.
28. Заданной величины работы (в Дж) в величины, выраженные в килокалориях и Вт*ч.
29. Заданного давления (в мм ртутного столба) в величины, выраженные в физических атмосферах (атм.) и мм водяного столба
30. Площади (в кв.м.) в русские неметрические единицы: в ары и гектары.
2.3.2 Составить блок-схему и два варианта программы решения задачи: с использованием одного из условных операторов и оператора выбора. Текст программы должен содержать все необходимые комментарии, а для создания наглядного и удобного пользовательского интерфейса следует использовать форматный ввод-вывод с комментариями. Организовать проверку правильности ввода пользователем данных.
В вариантах 1 – 18 определить:
1. Частное двух произвольных чисел; если делитель равен нулю, сообщить об ошибке.
2. Общее сопротивление электрической цепи, состоящей из двух сопротивлений, с учетом того, что они могут быть соединены последовательно или параллельно.
3. Скорость движения автомобиля v, преодолевающего расстояние S за время t, с учетом возможности равномерного или равнопеременного движения.
4. Стоимость разговора по телефону с учетом 20% скидки, предоставляемой по субботам и воскресеньям; длительность разговора и день недели вводится пользователем.
5. Среднее геометрическое положительных чисел из последовательности, введенной с клавиатуры пользователем и содержащей как положительные, так и отрицательные значения.
6. Действительные корни заданного квадратного уравнения с произвольными коэффициентами; в случае получения отрицательного дискриминанта выдать сообщение.
7. Сумму чисел из произвольной последовательности, введенной пользователем, равных по модулю заданному числу А.
8. Стоимость междугородного телефонного разговора; исходными данными для программы являются код города и длительность разговора, дополнительными сведениями для вывода - название города и тариф.
9. Шифр зачетной книжки студента, если известно, что две первые цифры определяют год поступления, три следующие – код факультета и специальность, две последние – его номер в приоритетном списке специальности.
10. Среднюю скорость автомобиля, который часть времени движения едет со скоростью v1, а другую – со скоростью v2. При каком условии средняя скорость не превышает значения v2?
11. Размер стипендии, которая назначается студенту, с учетом его результатов после сдачи 5 экзаменов: при суммарном балле 25-32 назначается стипендия в размере k тенге, 33-39 баллов – добавляется 25%, 40-45 баллов – добавляется 50%. На экран необходимо вывести результаты каждого экзамена и суммарный балл студента с сообщением о размере стипендии.
12. Тип треугольника (равносторонний, равнобедренный или разносторонний), если известны длины его сторон: a, b и c.
13. Расстояние S, которое преодолеет поезд, движущийся со скоростью v за время t, с учетом возможности равномерного или равнопеременного движения.
14. Размер оплаты при договорной форме обучения студента за интересующий пользователя период T с учетом скидок, предоставляемых за отличную успеваемость (30%), малоимущим (25%), сиротам (50%).
15. Наименьшее из четырех введенных пользователем чисел.
16. Размер стипендии студента с учетом успеваемости, платы за общежитие, профсоюзных взносов, компенсации на детей, других доплат и удержаний.
17. Стоимость проезда студента с учетом предоставляемых сезонных льгот на разных видах транспорта.
18. Наибольшее из четырех, введенных с клавиатуры чисел.
19. Доход, который может получить вкладчик банка, разместив свои средства на депозите (s%) с капитализацией процентов на срок T.
В вариантах 19 – 30 проверить:
19. Является ли треугольник тупоугольным, прямоугольным или остроугольным, если заданы длины его сторон, используя теорему косинусов?
20. Могут ли быть введенные числа a, b и c сторонами треугольника, если условия его существования: a<=b+c; b<=a+c; c<=a+b?
21. Можно ли коробку размером a x b x c упаковать в посылку размером r x s x t? «Углом» укладывать нельзя.
22. Число, введенное пользователем, на кратность девяти.
23. Пользователя на знание таблицы умножения: вывести пример на умножение двух однозначных чисел, запросить ответ пользователя и организовать проверку правильности введенного результата с выдачей соответствующего сообщения.
24. Число, введенное пользователем, на четность и отрицательность.
25. Является ли введенное число N совершенным, т.е. равным сумме всех своих простых делителей (например, 6=1+2+3)?
26. Число N на кратность четность и кратность 5.
27. Является ли число А, введенное пользователем, одновременно положительным и кратным двойке?
28. Пройдет ли кирпич со сторонами a, b и c сквозь прямоугольное отверстие со сторонами r и s?
29. Число, введенное пользователем, на кратность трем.
30. Можно ли на прямоугольном участке застройки размером a на b метров разместить, параллельно его сторонам, два дома размерами p на q и r на s метров?
2.4 Контрольные вопросы
2.4.1 Какие операторы используются в С++ для ввода-вывода данных?
2.4.2 Что представляют собой операции извлечения и вставки?
2.4.3 Как организуются форматный и бесформатный вывод в С++?
2.4.4 Какие функции используются для оформления программы?
2.4.5 Какие конструкции относятся к конструкциям принятия решений?
2.4.6 Подумайте, отрицательные числа – это значения TRUE или FALSE?
2.4.7 Как строится условное выражение?
2.4.8 С какой целью в операторе выбора используется оператор break?
2.4.9 Почему следует избегать оператора goto в программах?
2.4.10 Что представляет собой троичный условный оператор?
3 Лабораторная работа №3. Программирование алгоритмов циклической структуры
Цель работы – ознакомление с особенностями программирования алгоритмов циклической структуры.
3.1 Алгоритмы циклической структуры. Операторы цикла
Алгоритм, в котором предусмотрено многократное выполнение одной и той же последовательности действий, называется алгоритмом циклической структуры, а эта последовательность – циклом. Циклический алгоритм позволяет существенно сократить объем программы. В С++ используются операторы циклов трех видов: с предварительным условием, с последующим условием и с параметром.
Оператор цикла с предварительным условием (с предусловием) относится к базовым конструкциям, выполняет повторяющиеся действия до тех пор, пока заданное условие истинно, и имеет вид:
while (условие) или while (условие)
{ оператор;
оператор1;
оператор2;
операторN;
}
где условие представляет собой любое простое или сложное выражение языка С++; оператор – любой допустимый оператор или блок операторов (тело цикла).
Цикл выполняется до тех пор, пока условие принимает значение TRUE. При ложном значении (FALSE) цикл завершается, и программа передает управление следующему оператору программы.
Пример 3.1 – Выводить на экран значения переменной counter до тех пор, пока они не превысят 11.
#include <iostream.h>
