Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 сем / ОП 1 Лабораторная

.docx
Скачиваний:
5
Добавлен:
04.07.2024
Размер:
445.43 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ

ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«​САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА

Кафедра вычислительных систем и сетей

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

Доцент Л.Н. Бариков

должность, уч. степень, звание подпись, дата инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

Следование

по дисциплине: Основы программирования

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР. №

номер группы подпись, дата инициалы, фамилия

Студенческий билет №

Санкт-Петербург 2020

Лабораторная работа №1

Следование

Цель лабораторной работы: изучение концепций и освоение технологии структурного программирования, приобретение навыков структурного программирования на языке C/C++ при решении простейших вычислительных задач.

Задание на программирование: используя технологию структурного программирования разработать линейную программу решения индивидуальной вычислительной задачи (выполнение поразрядных логических операций над целыми числами).

Порядок выполнения работы:

  1. Получить у преподавателя индивидуальное задание.

  2. Разработать математическую модель вычислений. Для этого выполнить все необходимые вычисления вручную, при этом учесть, что все исходные данные и результаты вычислений занимают ​по одному байту памяти​. Конечные результаты интерпретировать как неотрицательные значения.

  3. Принять полученные результаты в качестве контрольных значений.

  4. Построить схему алгоритма решения задачи.

  5. Составить программу на языке ​C/C++​.

  6. Для хранения результатов использовать переменные типа unsigned char​.

  7. Выходные данные (сообщения) ​выводить на экран в развернутой форме.

  8. Проверить и продемонстрировать преподавателю работу программы.

  9. Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольный пример (скриншот).

  10. Вариант задания определяется как две последних цифры номера зачетной книжки (цц), взятых по модулю 50, плюс 1 (цц mod 50 + 1). Например, 00 – 1-й вариант, 01 – 2-ой вариант, 49 – 50-ый вариант, 60 – 11-ый вариант, и т.д.

Вариант №49

Задание: выполнить поразрядные логические операции над машинными кодам.

Условные обозначения операций:

˄ ​-​ ​конъюнкция, поразрядное логическое умножение;

˅​ - дизъюнкция, поразрядное логическое сложение;

¬​ - поразрядное логическое отрицание;

∆ ​- поразрядное суммирование по модулю 2;

>> - поразрядный сдвиг вправо; << - поразрядный сдвиг влево

49.

95 ˄​ 20

95 ˅​ -20

95 ​>>​ 2

120 ​​ -95 ˄​ (​¬​20 ˅​ -37)

Ход работы.

1. Выполнила вычисления вручную.

9510 = 0101 1111​ ​2

  • 9510 =​ ​ ​1010 00012

  • 3710 = 1101 1011​ ​2

2010 = 0001 0100​ ​2

-2010 = 1110 1100​ ​2

12010 = 0111 100​ ​2

  1. Схема алгоритма решения задачи.

  1. Текст программы.

#include <iostream> using namespace std;

int main() { unsigned char a, b, c, d, xx, xxx, xxxx; a = 95 & 20;

printf("95 AND 20 = (20) = %i \n", a); b = 95 | -20;

printf("95 OR - 20 = (255) = %i \n", b); c = 95 >> 2; printf("95 >> 2 = (23) = %i \n", c);

d = 120 ^ -95 & (~20 | -37);

printf("120 XOR - 95 AND (NOT 20 OR - 37) = (217) = %i \n \n", d); //

cout << "PROVERKA\n________________________\n\n"; xx = 120 ^ -95;

printf("120 ^ -95 = (217) = %i \n", xx); xxx = ~20 | -37;

printf("~20 | -37 = (251) = %i \n", xxx); xxxx = xx & xxx;

printf("xx & xxx = (217) = %i \n", xxxx);

cout << "________________________\n";

//

return 0;

}

4. Скриншот контрольного примера выполнения программы.

Соседние файлы в папке 2 сем