Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод_си_15.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
392 Кб
Скачать
☆
  1. & Конъюнкция (логическое и)

  2. | Дизъюнкция (логическое или)

  3. ~ инверсия (логическое НЕ)

  4. ^ исключающее ИЛИ

Результат выполнения операции не влияет на соседние биты. Для каждого бита результат выполнения операции будет получен в соответствии с таблицей.

a

b

a & b

a | b

~a

a ^ b

0

0

0

0

1

1

0

1

0

1

1

0

1

0

0

1

0

0

1

1

1

1

0

1

>> - сдвиг вправо. Логический сдвиг сдвигает биты числа вправо, дописывая слева нули, если переменная unsigned. Арифметический сдвиг аналогичен логическому, но значение слова считается знаковым числом, представленным в дополнительном коде. При правом сдвиге старший бит сохраняет свое значение.

<< - сдвиг влево – сдвигает биты влево, дописывая справа нули. Вышедшие за пределы числа биты отбрасываются. Арифметический сдвиг влево идентичен логическому.

Арифметические сдвиги влево и вправо используются для быстрого умножения и деления на 2

Задание 7. "Задача о ранце". Задано количество предметов, вес и стоимость каждого предмета. Известна грузоподъёмность ранца. Определить номера предметов, которые следует поместить в ранец, чтобы суммарная стоимость была максимальной.

Замечание. Использовать переменные типа int. Если бит = 1, предмет кладётся в ранец, 0 - в противном случае.

Задание 8. Программа формирования строки, состоящей из символов '0' и'1', дающая двоичное преставление величины х целого типа.

Задание 9. В 'k' присвоить значение 'j'- го бита из 'i'. Установить '1' в 'j'-ый бит. Погасить 'j'- ый бит. Инвертировать значение 'j'- го бита.

Задание 10. Осуществить циклический сдвиг влево на заданное число позиций.

Тема: массивы. Указатели и массивы.

(101.05.08. met_ci.doc. http://www.unn.ru/books/resources.html)

1. Массивы символов.

Задание 11. Шифр замены. Каждый символ исходного сообщения заменяется символом, сдвинутым на N позиций в исходном алфавите, где N - ключ шифра. Например, при N= 3 ("шифр Цезаря") буква "а" заменяется на "г", "б" -на "д" и т.д. Расшифровать сообщение.

Замечание. Можно воспользоваться кодировкой АSCII.

Задание 12. Программа преобразования строки символов в число. Обратное преобразование - число в строку символов.

Задание 13. С использованием указателей написать функции:

копирования строк;

слияния двух строк;

поиска строки в подстроке;

печати строки в обратном порядке.

сравнения двух строк.

2. Числовые массивы.

Задание 14. Программа сортировки массивов целых или действительных чисел. (Алгоритм - по выбору.)

Задание 15. "Задача мастера". Задано количество станков, подлежащих ремонту ( m), время на ремонт каждого станка ( t), потери от простоя станка в единицу времени ( с). Определить порядок ремонта станков с целью минимизации суммарных потерь от простоя станков:

F = c1 * t1 + c2 * (t1 + t2) + c3 * (t1 + t2 +t3) + ...+ cm * (t1 + t2 + ... + tm)

Рекомендация. Оптимальной является перестановка, в которой станки упорядочены по убыванию отношения ci / ti.

Тема: функции.

(101.05.08. met_ci.doc. http://www.unn.ru/books/resources.html)