Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vse_bilety_YaTP.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
511.49 Кб
Скачать

3 Билет

Алгоритмы и их характеристики.

Разработка алгоритмов:

  1. Определение входа-выхода

  2. Осознание идеи связи входа-выхода (тела программы)

  3. Описание этой идеи

Свойства алгоритмов:

  1. Вход

  2. Выход

  3. Определённость инструкций

  4. Выполнимость инструкций

  5. Конечность алгоритма

  6. Массовость

Критерии сравнения алгоритмов:

  1. Размер входа

  2. Временна́я сложность - T(n)

  3. Емкостная сложность - E(n)

  4. Алгоритм порядка f(n) - O(f(n))

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

  1. Описание блок-схемами

  2. Псевдокод

  3. Алгоритмический язык

Управляющие структуры.

Минимальный пакет операторов:

  1. Структуры следования

  2. Развилки (условия if-else)

  3. Цикл «while»

4 Билет

Лексемы:

  1. Идентификатор

  2. Служебные символы:

  1. Ключевые слова

  2. Спец. символы: +, -, <, >, <=, >=, знаки операций, знаки разделителей, пробелы

  1. Метка

  2. Константы

В записи лексической единицы не допускаются пробелы!

Между двумя лекс. единицами, которые не являются математическими символами/пробелами, нужен пробел!

Концепция типов данных:

Переменная, константа, выражение, функция принадлежит какому-либо типу.

?

Тип = {множества: констант, переменных, функций, данных, операций} + {размер области памяти, способ обработки данных}

5 Билет

Основные типы C++ :

  1. Стандартные

  2. Сложные

int, char, bool float, double, longdouble

| |

целые |

| |

АРИФМЕТИЧЕСКИЕ

Целый тип:

  1. Операции: {+0, -0; *, /, %; +, -; <<, >>; <, <=, >, >=; ==, !=}

  2. Функции: {abs(x), srand(x), rand()}

int 4 байта -2147483648 – 2147483647

short, long, signed, unsigned

shortint 2 байта

longint 8 (4) байта

#include <cstdlib>

0xABC - 16ичная система

0123 - 8ичная система

123 - 10ичная система

Вещественный тип:

  1. Операции: {+0, -0; *, /; +, -; <=, >=, <, >; ==, !=}

  2. Функции: {fabs(x), sin(x), cos(x), log(x), ln(x), lg(x), exp(x), atan(x), asin(x), acos(x), pow(a,x), sqrt(x)}

float 4 байта 1,17*10-38 ≤ |x| ≤ 3,4*1038

double 8 байт 2,2*10-308 ≤ |x| ≤ 1,7*10308

#include <cmath>

Символьный тип:

char 1 байт

unsigned char 0-255

#include <cctype>

  1. isalpha(x) – x буква?

  2. isalnum(x) – x буква/цифра?

  3. isdigit(x) – x цифра?

  4. iscntrl(x) – x управляющий символ?

Логический тип:

Операции: {!; <, >, <=, >=; ==, !=; &&, ||}

Булева алгебра

6. Выражение в C++. Тип выражения. Приоритеты операций. Префиксные и постфиксные операции. Совместимость типов. Преобразование типов. Вычисление выражений.

Выражение. Состоит из одного или более операндов, в простейшем случае – из одного литерала или объекта.

Типы выражения:

-логические выражения,

-арифметические выражения,

-выражения сравнения

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

Таблица приоритетов в С++:

Операции инкремента (++) и декремента (--)

В языке C++ предусмотрены две уникальные операции, которые увеличивают или уменьшают значение переменной на 1.

Оператор

Пример

Описание

Эквивалентное выражение

+ +

i + +;

Постфиксная

i =i+1; или i+=1;

+ +

+ + i;

Префиксная

i =i+1; или i+=1;

- -

i - -;

Постфиксная

i =i-1; или i-=1;

- -

- - i;

Префиксная

i =i-1; или i-=1;

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

Пример.

float a, b=2, c=1, d=1;

a = b + c++;

cout << "\n a=" << a <<"\t c= "<< c;

// Даст результат a=3 c=2.

Используется постфиксный инкремент. Сначала произойдет сложение b и c, результат запишется в а, затем с будет увеличена на 1

a = ++d + b;

cout << "\n a=" << a <<"\t d= "<< d;

// Даст результат a=4 d=2.

Используется префиксный инкремент. Сначала d будет увеличена на 1 (и станет равной 2), затем произойдет сложение d и b, результат запишется в а

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]