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

1. Система счисления – это способ наименования и изображения чисел с помощью символов, имеющих определённые количественные значения.

В позиционной системе счисления количественное значение каждой цифры зависит от её места (позиции) в числе.

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

2. Все данные на ЭВМ представлены в виде двоичных кодов. В ВМ применяются различные формы представления двоичных чисел: форма с фиксированной запятой; форма с плавающей запятой.

Фикс: Числа с фиксированной запятой могут занимать байт или слово.

Диапазон представления чисел с фиксированной запятой:

Для байта от -12810 до 12710;

Для слова от -3276810 до +3276710

В современных ЭВМ режим работы с фиксированной точкой используется преимущественно для представления целых чисел.

Плав: Любое вещественное число x в системе счисления с основанием N можно записать в следующем виде: , где m-мантисса,p-характеристика (порядок) числа. Если |m|<1, то запись числа называется нормализованной слева.

Н-р: 372,95=0,37295*103 (мантисса подчеркнута)

В ЭВМ используются для обработки очень больших чисел.

3. Значением символьной переменной является один символ из фиксированного набора.

Очевидно, в памяти компьютера никаких символов не содержится. Символы представляются их целочисленными кодами в некоторой фиксированной кодировке. Рассмотрим две основные из них.

Кодировки:

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

Unicode - способ кодирования символов, в котором для представления символов используются двоичные последовательности длиною в 16 бит (2 байта), а также единая большая таблица символов объёмом в 65536 позиций. Кодировка Unicode включает символы алфавитов всех европейских стран и кириллицу.

4. Решение задач на компьютере включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.

1. Постановка задачи:

сбор информации о задаче;

формулировка условия задачи;

определение конечных целей решения задачи:

определение входных и выходных данных, их типов.

2. Математическое описание задачи:

анализ существующих аналогов задачи;

анализ технических и программных средств;

разработка математической модели;

разработка структур данных.

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

выбор метода проектирования алгоритма;

выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

проектирование алгоритма.

4. Программирование:

выбор языка программирования;

уточнение способов организации данных;

запись алгоритма на выбранном языке программирования.

5. Тестирование и отладка:

синтаксическая отладка;

отладка логической структуры программы;

6. Тестовое решение задачи и анализ результатов решения

выбор тестовых примеров;

многократное решение задачи на ЭВМ для различных наборов исходных данных (на разных тестовых примерах).

анализ полученных результатов специалистом или пользователем, поставившим задачу.

7. Сопровождение программы:

составление документации к решенной задаче, к математической модели, к алгоритму, к программе; составление инструкции пользователя.

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

Свойства:

  1. конечность

  2. определённость

  3. наличие входных данных

  4. наличие выходных данных

  5. эффективность (занятое пространство, простота)

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

  1. Способы отображения алгоритмов:

    • Граф – совокупность вершин (узлов) и связывающих их ребер (ветвей)

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

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

  • Псевдокод – специальный неформальный язык для записи алгоритмов.

(Записи алгоритмов на псевдокоде позволяют легко перейти на любой язык программирования)

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

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

Можно выделить несколько существующих в настоящее время идеологий проектирования алгоритмов и программирования:

  • структурное проектирование:

  • процедурное проектирование:

  • модульное проектирование;

  • объектно-ориентированное проектирование;

  • компонентно-ориентированное проектирование.

  • Порядок перечисления неслучаен: он отражает последовательность развитие идеологий и связан с тем. что каждая концепция является базой и неотъемлемой частью последующей концепции.

8.

9.

10. Языки программирования можно условно классифицировать по принципам образования конструкций языка:

•языки низкого уровня — языки программирования, привязанные к конкретной архитектуре вычислительной системы, включают в себя:

*машинные языки

*машинно-ориентированные

•алгоритмические языки (языки высокого уровня) — не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма:

*процедурно-ориентированные языки (procedure-oriented languages) — языки программирования, в которых имеется возможность описания программы как совокупности процедур (подпрограмм) (Pascal, С, Basic, Fortran и др.):

*проблемно-ориентированные языки (universal programming languages) — языки программирования, предназначенные для решения задач определенного класса (Lisp, РПГ. Simula, Prolog и др.);

*объектно-ориентированные языки (object-oriented languages) — языки программирования, в которых используется отображение объектов реального мира, их свойств и связей между ними при помощи специальных типов и структур данных — классов, объектов классов (Object Pascal, С++, С#, Java).

Интегрированная среда разработки (англ. IDE) — система программных средств, используемая программистами для разработки программного обеспечения (ПО).

Обычно среда разработки включает в себя:

· текстовый редактор;

· транслятор (компилятор/интерпретатор);

· отладчик;

· средства оптимизации программного кода;

· редактор связей (компоновщик);

· набор стандартных библиотек (возможно, с исходными кодами);

· сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;

· средства поддержки и управления проектом программного комплекса.

· справочная система;

11.

Транслятор — это программа-переводчик, преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.

Компоновщик (также редактор связей, линкер) — программа, которая производит компоновку: принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль.

Отладчик (дебаггер) — компьютерная программа, предназначенная для поиска ошибок в других программах, ядрах операционных систем, SQL-запросах и других видах кода.

12. Лексика языка С++

Идентификатор (или просто имя) – это имя переменной, константы, функции, типа, синоним типа, имя метки или имя константы типа перечисления (enum).

Некоторые правила именования идентификаторов:

1. Идентификатор начинается с буквы и может содержать буквы и цифры (знак подчеркивания считается буквой).

2. Ограничения на длину имени не накладываются, но конкретная реализация может различать лишь конечное число его начальных символов (в Visual C++ компилятор различает только первые 31 символ).

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

4. Идентификаторы с малой областью видимости должны быть короткими, а с большой – по возможности подробными. Для разделения слов в имени удобно пользоваться знаком подчеркивания. Можно каждое слово в имени начинать с прописной буквы. (Например: MyFirstName, SetNewValue, my_first_name, set_new_value)

5. Стилистическое соглашение между программистами: в начале имени добавляется сокращенное обозначение типа данных (i – int, d – double, p – указатель, sz – C-строка и т. д.).

6. В именах макросов (о них позже) лучше использовать только заглавные буквы.

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

Оператор в C++ – это один или несколько подряд идущих специальных символов либо ключевое слово. Он предназначен для выполнения некоторых действий (операций) над данными (операндами), а также для составления выражений. Операторы бывают унарные и бинарные. Унарные операторы бывают префиксные и постфиксные (суффиксные).

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

Препроцессор – это обработчик макросов, всегда обрабатывающий тексты файлов программы перед началом компиляции.

Все директивы начинаются с символа «шарп» (#), который должен быть первым символом в данной строке.