Лабораторные работы С (для ИВТ) / Готовые лабы С / Лаба2 / ЛабРаб 2
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Поволжский государственный университет телекоммуникаций и информатики» |
||
|
||
|
||
Факультет |
Факультет № 1. |
|
|
||
Направление подготовки / специальность |
09.03.01 Информатика и вычислительная техника |
|
|
||
|
||
Кафедра информатики и вычислительной техники |
|
|
|
|
|
ФИО студента
|
|
|
|
|
|
Группа студента
|
|
|
|
|
|
,Лабораторная работа № 2
по программированию С
Цель работы: познакомиться с функциями из математической библиотеки, освоить операции отношения и логические операции, научиться грамотно программировать базовые алгоритмические структуры «ветвление» и «цикл».
Вариант 4.
1.
2.
3. Даны 2 числа. Если они оба положительны, то поменять знак у большего из них; если оба отрицательны, то первое умножить на 2, а второе умножить на 3; если числа разных знаков, то меньшее заменить их полусуммой, а большее уменьшить на 1. Если хотя бы одно из чисел равно нулю, то изменять их не требуется.
4. Вывести на экран через запятую все делители натурального числа N.
5. Найти сумму целых положительных чисел, кратных четырём, из промежутка [А, В]. Значения А и В вводятся с клавиатуры.
6. Дано натуральное число n. Составить программу для определения количества цифр в этом числе.
7.
Вычислить значение суммы членов
бесконечного ряда
с точностью до члена ряда, по модулю
меньшего
,
и значение функции (для проверки)
,
учесть, что
8.
Вычислить значение суммы членов
бесконечного ряда
с точностью до члена ряда, по модулю
меньшего
,
и значение функции (для проверки)
,
учесть, что
9. Написать программу для поиска 100 первых простых чисел. Простыми называются натуральные числа, не имеющие других делителей, кроме 1 и самого числа.
Ход работы:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Ответы на контрольные вопросы
1. Чем отличается условная операция от условного оператора?
Условная операция (?:) — это операция, возвращающая значение (используется в выражениях)
Условный оператор (if-else) — это оператор управления потоком выполнения
2. Что такое полная и неполная форма условного оператора?
Полная форма: if (условие) оператор1; else оператор2;
Неполная форма: if (условие) оператор;
3. Может ли существовать неполная форма условной операции?
Нет, условная операция всегда имеет три операнда: условие ? выражение1 : выражение2
4. Нужно ли писать "else", если при выполнении условия выполняется оператор return?
Нет, если в ветке if есть return, то else можно опустить:
if (x > 0) return 1;
// else не нужен
return 0;
5. Выражения какого типа могут определять условия?
Любого скалярного типа: целочисленные, вещественные, указатели.
6. Какие значения выражения, определяющего условие, считаются истинными, а какие ложными?
Ложь: 0 (ноль)
Истина: любое ненулевое значение
7. Какие операции относятся к операциям отношения?
== (равно), != (не равно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно)
8. Чем отличается операция "==" от операции "="?
== — сравнение на равенство
= — присваивание
9. Какие операции относятся к логическим? Каков их приоритет?
! (НЕ), && (И), || (ИЛИ). Приоритет: ! > && > ||
10. Какой операцией можно заменить операцию "&&"?
Можно использовать вложенные условия: if (a) if (b) вместо if (a && b)
11. Какой операцией можно заменить операцию "||"?
Можно использовать несколько условий: if (a) ... else if (b) вместо if (a || b)
12. Чему может быть равно значение выражения отношения или логического выражения?
0 (ложь) или 1 (истина)
13. Как правильно сравнить на равенство вещественные числа?
Использовать сравнение с точностью:
fabs(a - b) < epsilon // вместо a == b
14. Как правильно проверить вхождение значения в некоторый диапазон?
if (x >= min && x <= max) // правильно
if (min <= x <= max) // НЕПРАВИЛЬНО!
15. Как проверить некоторое целочисленное значение на равенство нулю?
if (x == 0)
16. Как проверить отличие целочисленного значения от нуля?
if (x != 0)
17. Когда применяется вложение условных операторов?
Когда нужно проверить несколько взаимосвязанных условий.
18. Как правильно записать вложенные условные операторы?
С правильными отступами и скобками для ясности:
if (условие1) {
if (условие2) {
// ...
}
}
19. Что представляет собой оператор switch? Как им пользоваться?
Оператор выбора:
switch (выражение) {
case значение1: операторы; break;
case значение2: операторы; break;
default: операторы;
}
21. Что такое цикл?
Конструкция для многократного выполнения блока операторов.
22. Какие виды циклов вы знаете? Какие операторы цикла существуют в языке Си?
С предусловием: while, for
С постусловием: do-while
23. Чем отличается цикл с предусловием от цикла с постусловием?
С предусловием: условие проверяется ДО выполнения тела
С постусловием: условие проверяется ПОСЛЕ выполнения тела
24. Когда необходимо использовать цикл с предусловием, а когда с постусловием?
С предусловием: когда тело может не выполняться ни разу
С постусловием: когда тело должно выполниться хотя бы один раз
25. Какие циклы с предусловием существуют в языке Си?
while и for
26. Сколько операторов содержит в себе тело цикла в языке Си?
Любое количество (0, 1 или более). Для нескольких операторов использовать { }
27. Как правильно записать цикл с постусловием на языке Си?
do {
операторы;
} while (условие);
28. Как задать бесконечный цикл? Зачем он нужен? Как из него выйти?
while (1) { ... } // или for (;;)
Нужен для серверов, обработчиков событий. Выход через break или return
29. Каким должно быть значение выражения, определяющего условие выполнения цикла, для завершения цикла?
Ложь (0)
30. Каким должно быть значение выражения, определяющего условие выполнения цикла, для выполнения тела цикла?
Истина (ненулевое значение)
31. К чему приведет неправильное задание выражения, определяющего условие выполнения цикла?
Бесконечный цикл (если условие всегда истинно)
Цикл не выполнится ни разу (если условие всегда ложно)
32. Может ли тело цикла отсутствовать? Если может, то приведите примеры таких циклов.
Да, может:
while (условие); // пустое тело
33. Чем отличается оператор while от оператора if?
while — многократное выполнение
if — однократное выполнение
34. Каков порядок действий при выполнении цикла for?
1) Выражение1 (инициализация)
2) Проверка условия (выражение2)
3) Если истина → тело цикла
4) Выражение3 (инкремент)
5) Повтор с п.2
35. Как организовать арифметический цикл с помощью цикла for?
for (int i = start; i <= end; i += step) { ... }
36. Запишите алгоритм, определяемый циклом for, с помощью цикла while.
// for
for (инициализация; условие; инкремент) { тело }
// while
инициализация;
while (условие) {
тело;
инкремент;
}
37. Что такое вложенный цикл?
Цикл внутри другого цикла.
38. Сколько раз в общей сложности выполняется тело вложенного цикла?
N × M раз, где N — количество итераций внешнего цикла, M — внутреннего.
39. Как и когда используются операторы break и continue?
break — немедленный выход из цикла
continue — переход к следующей итерации
40. Что такое рекуррентные вычисления? Когда они используются? Как их программировать?
Рекуррентные вычисления — вычисление следующего члена последовательности через предыдущий.
Используются: при работе с рядами, последовательностями.
Программирование:
double term = первый_член;
double sum = term;
for (int n = 1; n <= N; n++) {
term = term * рекуррентное_соотношение;
sum += term;
}
