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

5. Понятие языка программирования и структуры данных.

Языки программирования – это формальные языки специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас свои грамматику и синтаксис, а также семантику.

Язык программирования можно определить как1)  соглашение между программистом и компьютером, в соответствии с которым человек дает указания компьютеру о действиях, выполнение которых требуется от последнего, и, также, как 2)  совокупность средств, применяемых для этого.

Язы́к программи́рования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением. Со времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования.[1] Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования

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

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

6. Основные типы алгоритмов, их сложность и их использование для решения задач.

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

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

2. Разветвляющийся алгоритм - Приведем пример записи разветвляющегося алгоритма для нахождения наибольшего из двух чисел. Разветвляющийся алгоритм- это такой алгоритм, который содержит команду ветвления. Команда ветвления - это составная команда, в которой та или иная серия команд выполняется после проверки условия.

Циклический алгоритм -Рассмотрим алгоритм нахождения суммы первых натуральных нечетных чисел до n. Представим запись алгоритма тремя способами: в виде блок-схемы, школьного алгоритмического языка и на языке программирования Pascal.

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

Алгоритм сложения

В основе алгоритма сложения многозначных чисел лежат следующие теоретические факты:

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

Задача 4. Проиллюстрировать теоретические основы алгоритма сложения, вычислив суммы: а) 532 + 8347;     б) 637 + 548.

Решение. а) Представим слагаемые 532 и 8347 в виде суммы степеней десяти с коэффициентами:

Раскроем скобки в полученном выражении, поменяем местами и сгруппируем слагаемые так, чтобы единицы оказались рядом с единицами, десятки с десятками и т.д. Все эти преобразования можно выполнить на основании соответствующих свойств сложения. Свойство ассоциативности разрешает записать выражение без скобок:  На основании свойства коммутативности поменяем местами слагаемые:  . Согласно   свойству ассоциативности произведем группировку:    . Вынесем за скобки в первой выделенной группе число 102, а во второй – 10. Это можно сделать в соответствии со свойством дистрибутивности умножения относительно сложения:  .Итак, сложение данных чисел свелось к сложению однозначных чисел, изображенных цифрами соответствующих разрядов. Эти суммы находим по таблице сложения:  . Полученное выражение есть десятичная запись числа 8879.