- •Нижегородский государственный университет им. Н.И. Лобачевского (ннгу)
- •Учебно-методическое пособие по курсу «программирование (язык си)»
- •1. Содержательное описание курса
- •1.1. Цели освоения дисциплины
- •1.2. Место дисциплины в структуре основных образовательных программ
- •1.3 Формирование компетенций
- •1.4 Требования к результатам освоения дисциплины «Программирование (с)»
- •2. Структура курса «Программирование (с)»
- •2.1 Плановая нагрузка
- •2.2. Содержание разделов дисциплины
- •10. Типы, определяемые пользователем.
- •3. Лабораторный практикум
- •3.1. Общие положения о выполнении лабораторных работ
- •3.2. Тематические задания по курсу «Программирование (язык си).
- •If (условие) оператор;
- •& Конъюнкция (логическое и)
- •| Дизъюнкция (логическое или)
- •1. Массивы символов.
- •2. Числовые массивы.
- •1. Передача параметров в функции.
- •2. Рекурсивные функции.
- •3.3. Рекомендации по выполнению лабораторных работ
- •Задача Джонсона. Обработки n деталей на 2 станках.
- •Модификация задачи Джонсона.
- •4. Учебно-методическое обеспечение самостоятельной работы студентов.
- •4.1. Вопросы для контроля
- •4.2. Критерии оценок
- •4.3. Учебно-методическое и информационное обеспечение дисциплины «Программирование (с)»
- •Оглавление
- •Учебно-методическое пособие по курсу «программирование (язык си)»
- •603950, Нижний Новгород, пр. Гагарина, 23.
& Конъюнкция (логическое и)
| Дизъюнкция (логическое или)
~ инверсия (логическое НЕ)
^ исключающее ИЛИ
Результат выполнения операции не влияет на соседние биты. Для каждого бита результат выполнения операции будет получен в соответствии с таблицей.
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)
