«Алгоритмы и структуры данных»



жүктеу 1,49 Mb.
бет12/41
Дата24.08.2020
өлшемі1,49 Mb.
#31319
1   ...   8   9   10   11   12   13   14   15   ...   41
СТ Алгоритмы и структуры данных рус

Сдвиговые операции


Операции арифметического сдвига применяются в целочисленной арифметике и обозначаются как:

  • >> — сдвиг вправо;

  • << — сдвиг влево.

Общий синтаксис осуществления операции сдвига:
объект = выражение сдвиг КоличествоРазрядов;

Пример:

1
2
3

unsigned char a=6;  // a = 0000 0110
unsigned char b;
b = a >> 1; // b = 0000 0110 >> 1 = 0000 0011 = 3

Арифметический сдвиг целого числа вправо >> на 1 разряд соответствует делению числа на 2.
Арифметический сдвиг целого числа влево << на 1 разряд соответствует умножению числа на 2.

 УСЛОВНЫЙ ОПЕРАТОР И ЛОГИЧЕСКИЕ ОПЕРАЦИИ


   Используя логические операции, можно строить условные выражения. Например, реализуем на языке Си следующие задачи, в которых требуется написать выражения для условного оператора.

   Пример 1.3.1. Проверить, лежит ли значение переменной x в интервале (1; 5):

if ((x > 1) && (x < 5)) ...

   Пример 1.3.2. Проверить, лежит ли значение переменной x вне интервала (1; 5):

if ((x <= 1) || (x >= 5)) ...

   В языке Си нет булевого типа. Если значение переменной равно 0, то ее значение считается равным 'ложь' (иначе 'истина'). Так, например, вместо выражения

if (x == 0) ...

можно писать

if (!x) ...

   Выражение !x будет истинным, когда x будет ложным. А это возможно лишь в случае, когда x равно нулю.

   Пример 1.3.3. Записать условие того, что обе переменные x и y имеют значение 0:

if ((x == 0) && (y == 0)) ...

или то же самое

if (!x && !y) ...

   Упражнение 1.3.1. Записать условие того, что переменная х принимает одно из значений множества S = {1, 3, 6}.

   Истинное выраженние считается равным 1, ложное выражение считается равным нулю.

   Пример 1.3.4. Присвоим целочисленным переменным значения логических выражений и выведем их.

#include < stdio.h >

int i;

void main(void)



{

  i = (3 > 4);

  printf("%d\n",i);            // 0

  i = (3 < 4);

  printf("%d\n",i);            // 1

}

   Пусть f(x) и g(x) – некоторые функции, p(x) – предикат. Расмотрим функцию:



   Функцию y(x) можно реализовать без использования структуры if … else … .  Учитывая значения логических выражений, можно записать:

y(x) = f(x) * p(x) + g(x) * (1 – p(x))



   Записи 1 – p(x) и !p(x) эквивалентны.

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

Различают следующие виды алгоритмов:

линейный – список команд (указаний), выполняемых последовательно друг за другом;







разветвляющийся – алгоритм, содержащий хотя бы одну проверку условия, в результате которой обеспечивается переход на один из возможных вариантов решения;







циклический – алгоритм, предусматривающий многократное повторение одной  и  той  же  последовательности  действий.  Количество  повторений  обусловливается исходными данными или условием задачи.







Любая алгоритмическая конструкция может содержать в себе другую конструкцию того же или иного вида, т. е. алгоритмические конструкции могут быть вложенными.Рассмотрим следующие способы описания алгоритма:  словесное описание, псевдокод, блок-схема, программа.

Основные свойства алгоритмов:

1. Понятность для исполнителя — исполнитель алгоритма должен знать, как его выполнять.

2. Дискретность — прерывность, раздельность. Алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов (этапов).

3. Определенность — каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.

4. Результативность (конечность). Это свойство состоит в том, что алгоритм должен приводить к решению задачи за конечное число шагов.

5. Массовость — означает, что алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными.

Формы представления алгоритмов



На практике наиболее распространены следующие формы представления алгоритмов:

  • Словесная – запись на естественном языке;

  • в псевдокодах – полуформализованное описание алгоритма на условном алгоритмическом языке, включающее в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и т.д.;

  • табличная;

  • графическая – с помощью графических символов;

  • программная – запись на искусственном языке (языке программирования).

В рамках структурного программирования задачи, имеющие алгоритмическое решение, могут быть описаны с использованием следующих алгоритмических структур:
1   ...   8   9   10   11   12   13   14   15   ...   41




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау