- •Вопросы к экзамену по дисциплине программирование
- •Основные этапы решения задач на эвм. Критерии качества программы.
- •2. Жизненный цикл программы. Постановка задачи и спецификация программы.
- •3. Алгоритм и его свойства. Блок-схемы алгоритмов
- •4. Линейная алгоритмическая структура. Типовые примеры
- •5. Циклические алгоритмические структуры. Основные операторы ветвления. Типовые примеры
- •8. Общая характеристика языка Си. Возможности и особенности языка Си. Элементы, алфавит языка Си.
- •9. Программа, функция, оператор. Константы и переменные.
- •10. Категории типов данных. Представление чисел в эвм с фиксированной и плавающей точкой.
- •11. Представление символов в эвм. Основные типы данных, инициализация данных.
- •Категории типов данных
- •Инициализация данных
- •12. Операции и выражения. Выражения и присваивания. Операнды. Операции. Приоритеты операций и порядок вычисления. Побочные эффекты.
- •Выражения и присваивания
- •1.3.1. Операнды и операции
- •Приоритеты операций и порядок вычислений
- •13 Преобразование типов. Пустой оператор. Составной оператор. Преобразование типов
- •Пустой оператор
- •Составной оператор
- •14. Операторы управления вычислительным процессом. Условные операторы условия if.
- •15. Операторы циклов (for, while, do- while).
- •Оператор for
- •Оператор while
- •Оператор do while
- •16. Операторы переходов (break, continue, return, goto). Оператор break
- •Оператор continue
- •Оператор goto
- •17. Си. Функции. Основные понятия. Определение функции. Вызовы функций.
- •18. Передача аргументов в функцию и из функции. Определение и описание указателей.
- •19 Функция main()
- •23 Указатели и массивы. Массив как параметр функции.
- •25. Типы программного обеспечения
- •Системное программное обеспечение
- •Прикладное программное обеспечение
11. Представление символов в эвм. Основные типы данных, инициализация данных.
Важное отличие языка СИ от других языков (PL1, FORTRAN, и др.) является отсутствие принципа умолчания, что приводит к необходимости объявления всех переменных используемых в программе явно вместе с указанием соответствующих им типов.
Объявления переменной имеет следующий формат:
[спецафикатор-класа-памяти] спецификатор-типа
описатель [=инициатор] [,описатель [= инициатор] ]...
Описатель - идентификатор простой переменной либо более сложная конструкция с квадратными скобками, круглыми скобками или звездочкой (набором звездочек).
Спецификатор типа - одно или несколько ключевых слов, определяющие тип объявляемой переменной. В языке СИ имеется стандартный набор типов данных, используя который можно сконструировать новые (уникальные) типы данных.
Инициатор - задает начальное значение или список начальных значений, которые (которое) присваивается переменной при объявлении.
Спецификатор класса памяти - определяется одним из четырех ключевых слов языка СИ: auto, extern, register, static, и указывает,каким образом будет распределяться память под объявляемую переменную, с одной стороны, а с другой, область видимости этой переменной, т.е., из каких частей программы можно к ней обратиться.
Категории типов данных
Ключевые слова для определения основных типов данных
Целые типы : Плавающие типы:
char float
int double
short long double
long
signed
unsigned
Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением ключевого слова const к спецификатору-типа. Объекты с типом const представляют собой данные используемые только для чтения, т.е. этой переменной не может быть присвоено новое значение. Отметим, что если после слова const отсутствует спецификатор-типа, то подразумевается спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив, структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться немодифицируемым, т.е. значение ему может быть присвоено только один раз.
Примеры:
const double A=2.128E-2;
const B=286; (подразумевается const int B=286)
Инициализация данных
При объявлении переменной ей можно присвоить начальное значение, присоединяя инициатор к описателю. Инициатор начинается со знака "=" и имеет следующие формы. Формат 1: = инициатор; Формат 2: = { список - инициаторов }; Формат 1 используется при инициализации переменных основных типов и указателей, а формат 2 - при инициализации составных объектов. Примеры: char tol = 'N'; Переменная tol инициализируется символом 'N'. const long megabute = (1024 * 1024); Немодифицируемая переменная megabute инициализируется константным выражением после чего она не может быть изменена. static int b[2][2] = {1,2,3,4}; Инициализируется двухмерный массив b целых величин элементам массива присваиваются значения из списка. Эта же инициализация может быть выполнена следующим образом: static int b[2][2] = { { 1,2 }, { 3,4 } }; При инициализации массива можно опустить одну или несколько размерностей static int b[3[] = { { 1,2 }, { 3,4 } }; Если при инициализации указано меньше значений для строк, то оставшиеся элементы инициализируются 0, т.е. при описании static int b[2][2] = { { 1,2 }, { 3 } }; элементы первой строки получат значения 1 и 2, а второй 3 и 0. При инициализации составных объектов, нужно внимательно следить за использованием скобок и списков инициализаторов.