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

Вопрос №1 :

Алгоритм - это точное предписание, определяющее процесс перехода от исходных данных к результату.

Свойсва:

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

  2. Понятность – каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае, эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Казалось бы, что может быть проще, чем нарисовать на экране точку. Но пока вы не будете знать команду, которая это делает, получить результат будет невозможно.

  3. Определенность - каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвольного толкования. Результат выполнения команд не может зависеть от какой-либо дополнительной информации извне алгоритма. Сколько бы раз вы не запускали программу, для одних и тех же исходных данных всегда будет получаться один и тот же результат. При наличии ошибок в алгоритме, это свойство может иногда нарушаться.

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

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

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

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

  1. словесный (на естественном языке); недостаток – отсутствие строгой формализации и наглядности представления вычислительного процесса.

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

  3. табличный – предполагает представление алгоритма в виде таблицы решений и обычно носит вспомогательный характер;

  4. графический – использует элементы блок-схем.

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

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

Свойства программ - выполнимость, мобильность, правильность, эффективность.

  1. Выполнимость - возможность выполнения программы на данном типе компьютеров.

  2. Мобильность - возможность переноса программы на другой тип компьютеров.

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

  4. Эффективность - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера.

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

  1. Определение требований к программе

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

  3. Написание команд (кодирование) - создание программного кода на языке программирования.

  4. Отладка - устранение ошибок.

  5. Тестирование - проверка правильности ее работы.

Вопрос№2

Язык C# появился на свет в июне 2000 г. в результате кропотливой работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом (Anders Hejlsberg).

Особенности С#:

- Полный и хорошо определенный набор основных типов.

- Встроенная поддержка автоматической генерации XML-документации. Автоматическое освобождение динамически распределенной памяти.

- Возможность отметки классов и методов атрибутами, определяемыми пользователем. Это может быть полезно при документировании и способно воздействовать на процесс компиляции (например, можно пометить методы, которые должны компилироваться только в отладочном режиме).

- Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).

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

- Поддержка свойств и событий в стиле VB.

- Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).

- Возможность использования С# для написания динамических web-страниц ASP.NET.

В С# используется кодировка символов Unicode. 2 байта на символ.

Алфавит с# включает:

• буквы (латинские и национальных алфавитов) и символ подчеркивания (_),

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

• цифры;

• специальные символы, например +, *, { и &;

• пробельные символы (пробел и символы табуляции);

• символы перевода строки.

Лексема (token1) —это минимальная единица языка, имеющая самостоятельный смысл.

Существуют следующие виды лексем:

• имена {идентификаторы);

• ключевые слова;

• знаки операций;

• разделители;

• литералы( константы)

А) целые числа. Перед числом можно указывать первую букву названия того типа к которому должна быть отнесена константа.

Б) действительные числа для них обозначен тип double.

В) символьные константы.

Вопрос№3

Идентификатором называется последовательность цифр и букв, а также специальных символов, при условии, что первой стоит буква или специальный символ. Для образования идентификаторов могут быть использованы строчные или прописные буквы латинского алфавита. В качестве специального символа может использоваться символ подчеркивание (_). Два идентификатора для образования которых используются совпадающие строчные и прописные буквы, считаются различными. Например: abc, ABC, A128B, a128b .

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

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

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

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

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

Например, Андрей работает в компании X, а ID (сокр. от англ. Identifier — идентификатор) его как работника равен 123. Олег работает в компании Y, а его ID также равен 123. Единственное (с точки зрения некоей системы учёта), благодаря чему Андрей и Олег могут быть различимы при совпадающих ID, это их принадлежность к разным компаниям. Различие компаний в этом случае представляет собой систему различных пространств имён (одна компания — одно пространство). Наличие двух работников в компании с одинаковыми ID представляет большие проблемы при их использовании, например, по платёжному чеку, в котором будет указан работник с ID 123, будет весьма затруднительно определить работника, которому этот чек предназначается.

Правила, которым должны отвечать все идентификаторы:

• идентификатор должен быть уникальным, то есть одним и тем же именем разные объекты не могут быть названы;

• идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);

• идентификатор может состоять только из символов латинского алфавита, цифр и знака подчеркивания ("_"), регистр букв имеет значение;

• идентификатор не может начинаться с цифры.

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

При выборе идентификатора необходимо иметь в виду следующее:

• идентификатор не должен совпадать с ключевыми словами

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

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

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

Например:

class Point {

int x,y;

int getX() {

return x; // простое имя

}

}

class Test {

void main() {

Point p = new Point();

p.x=3; // составное имя

}

}