Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Использование операторов сдвига для организации ввода и вывода



В библиотеке ввода-вывода побитовые операторы > > и < < переопределены так, чтобы осуществлять действия по вводу и выводу данных. Хотя большинству про­граммистов вряд ли придется часто использовать именно побитовые операторы, в большинстве программ перегруженные версии этих операторов для ввода и вывода используются очень часто. Когда используется перегруженный оператор, он имеет тот же приоритет и порядок, что и у встроенной версии. Следовательно, программи­стам необходимо знать приоритет и порядок этих операторов, даже если они никогда не используются в их базовом виде, т.е. как операторов сдвига.

Более подробно использование операторов сдвига для организации ввода и вывода в операторах потокового ввода-вывода cin и cout рассмотрено в лабораторной работе № 5.

 

Следующая программа иллюстрирует особенности операций сдвига и поразрядных операций.

Пример 3.11.

//ЛР № 3 - Операции сдвига и поразрядные операции

#include < iostream.h>

void main()

{

cout < < " \n4< < 2 равняется " < < (4< < 2);

cout < < " \t5> > l равняется " < < (5< < 1);

cout < < " \n6& 5 равняется " < < (6& 5);

cout < < " \t6|5 равняется " < < (6|5);

cout < < **\t6Ù 5 равняется " < < (6Ù 5);

}

 

Результат выполнения программы:

4< < 2 равняется 16

5> > 1 равняется 2

6 & 5 равняется 4

6 | 5 равняется 7

6 Ù 5 равняется 3

 

Тем, кто давно не обращал внимания на битовое представление целых чисел, напоминаем, что двоичный код для 4 равен 100, для 5 – это 101, для 6 – 110 и т.д. При сдвиге влево на 2 позиции код 100 становится равным 10000 (десятичное значение равно 16). Остальные результаты операций сдвига и поразрядных операций могут быть прослежены аналогично.

Обратите внимание, что сдвиг влево на n позиций эквивалентен умножению значения на 2n, а сдвиг вправо кода уменьшает соответствую­щее значение в 2n раз с отбрасыванием дробной части результата. (Поэтому 5> > 1 равно 2.)

Сдвиг операнда влево на 1, 2, 3... бита соответствует его умножению на 2, 4, 8... соответственно. Сдвиг операнда вправо на 1, 2, 3... бита соответствует его целочисленному делению на 2, 4, 8... соответственно.

 

2. ЗАДАНИЕ

2.1. Изучить понятие алгоритма и его основные свойства.

2.2. Изучить способы записи алгоритмов.

2.3. Изучить представление алгоритмов в виде блок-схем.

2.4. Изучить алгоритмы типовых вычислительных процессов (линейных, разветвляющихся, циклических);

2.5. Изучить основные этапы подготовки и решения задачи на ЭВМ.

2.6. Изучитьарифметические операции языка С++ и приоритет операций.

2.7. Изучить правила использования математических функций языка С++.

2.8. Изучить побитовые логические операции и операции сдвига.

2.9. Ознакомиться с использованием операций сдвига в операторах потокового ввода-вывода.

2.10. Разобрать и выполнить примеры к данной лабораторной работе.

2.11. Написать и отладить три программы на языке С++.

Задания

Задание на алгоритмизацию вычислительных процессов (домашнее)

Дома самостоятельно составить блок-схемы алгоритмов для четырех типовых задач:

1. Составить блок-схему алгоритма для вычисления значения по следующей формуле

при x = 2, 44 и заданном значении а.

2. Составить блок-схему, которая:

- вводит а, х, s;

- вычисляет

 

- печатает a, x, y, s, z.

3. Начертить блок-схему для вычисления функции

4. Начертить блок-схему для вычисления функции

где

5. Начертить блок-схему для вычисления функции заданной графи­чески

        y            
                 
        -2         x    
   
                     
  -2  
                   
                     
                             

 

6. Начертить блок-схему для табуляции функции

для t = tН (Dt) tК. Принять tН = - 10, tК = 25, Dt =0, 5.

Внимание: Блок-схемы алгоритмов представить в отчете по лабораторной работе.

2.12.2. Задание на арифметические операции и математические функции языка С++

2.12.2.1. Формулировка задания

Составьте программу, которая подсчитывает и выводит значение переменных t1 и t2 по формулам, которые приведены в Вашем варианте индивидуального задания. Определите области допустимых значений параметров формул и задайте произвольные значения из этих областей. Параметры, которые имеют имена: n и m – целые, остальные параметры – с плавающей точкой. Значения параметров с именами x и y должны вводиться с клавиатуры, значения остальных – задаваться как начальные значения при объявлении соответствующих переменных. Допускается (и даже желательно) упростить (разложить) формулы для того, чтобы обеспечить минимизацию объема вычислений.

2.12.2.2. Варианты задания

Варианты задания приведены в табл. 3.14. Вариант соответствует номеру в журнале группы.

Таблица 3.14

Варианты задания


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 571; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.019 с.)
Главная | Случайная страница | Обратная связь