- •2.Понятие формального алгоритма. Тезис Тьюринга - Черча об эквивалентности различных определений вычислимости. Абстрактная машина фон Неймана. Понятие об элементарном исполнителе. 2 часа
- •3. Основные этапы решения задач на эвм: математическая постановка; алгоритм; программа; отладка и тестирование; сдача в эксплуатацию. 1 час
- •4. Критерии качества программы (надежность, эффективность, модифицируемость, возможность многократного использования, стиль программирования). 1 час.
- •5. Диалоговые программы, дружественность (интерфейс человек–компьютер, процессы ввода–вывода, структура диалога, поддержка пользователя). 1 час.
- •7. Постановка задачи и спецификация программы (представление в виде спецификации ввода–вывода; особенности спецификации для завершающихся и циклических программ); способы записи алгоритма. 1 час
- •9. Программа на языке высокого уровня. Язык программирования Си.
- •Элементы языка си
- •Алфавит
- •Буквы и цифры
- •Пробельные символы
- •Разделители
- •Специальные символы
- •Операции
- •Константы
- •Целые константы
- •Константы с плавающей точкой
- •Символьные константы
- •Символьные строки
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Структура программы Исходная программа
- •Исходные файлы
- •Выполнение программы
- •Время жизни и область действия
- •Области значений
- •Операторы
- •Оператор выражение
- •Пустой оператор
- •Составной оператор
- •Оператор if
- •Оператор switch
- •Оператор break
- •Оператор for
- •Оператор while
- •Оператор do while
- •Оператор continue
- •Оператор return
- •Оператор goto
- •Категории типов данных
- •Объединения (смеси)
- •Методы организации и хранения линейных списков
- •Операции со списками при последовательном хранении
- •Операции со списками при связном хранении
- •Организация двусвязных списков
- •Стеки и очереди
- •Сжатое и индексное хранение линейных списков
Операторы
Все операторы языка СИ могут быть условно разделены на следующие категории:
- условные операторы, к которым относятся оператор условия if и оператор выбора switch;
- операторы цикла (for,while,do while);
- операторы перехода (break, continue, return, goto);
- другие операторы (оператор "выражение", пустой оператор).
Операторы в программе могут объединяться в составные операторы с помощью фигурных скобок. Любой оператор в программе может быть помечен меткой, состоящей из имени и следующего за ним двоеточия.
Все операторы языка СИ, кроме составных операторов, заканчиваются точкой с запятой ";".
Оператор выражение
Любое выражение, которое заканчивается точкой с запятой, является оператором.
Выполнение оператора выражение заключается в вычислении выражения. Полученное значение выражения никак не используется, поэтому, как правило, такие выражения вызывают побочные эффекты. Заметим, что вызвать функцию, невозвращающую значения можно только при помощи оператора выражения. Правила вычисления выражений были сформулированы выше.
Примеры:
++ i;
Этот оператор представляет выражение, которое увеличивает значение переменной i на единицу.
a=cos(b * 5);
Этот оператор представляет выражение, включающее в себя операции присваивания и вызова функции.
a(x,y);
Этот оператор представляет выражение состоящее из вызова функции.
Пустой оператор
Пустой оператор состоит только из точки с запятой. При выполнении этого оператора ничего не происходит. Он обычно используется в следующих случаях:
- в операторах do, for, while, if в строках, когда место оператора не требуется, но по синтаксису требуется хотя бы один оператор;
- при необходимости пометить фигурную скобку.
Синтаксис языка СИ требует, чтобы после метки обязательно следовал оператор. Фигурная же скобка оператором не является. Поэтому, если надо передать управление на фигурную скобку, необходимо использовать пустой оператор.
Пример:
int main ( )
{
:
{ if (...) goto a; /* переход на скобку */
{ ...
}
a:; }
return 0;
}
Составной оператор
Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:
{ [oбъявление]
:
оператор; [оператор];
:
}
Заметим, что в конце составного оператора точка с запятой не ставится.
Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов.
Пример:
int main ()
{
int q,b;
double t,d;
:
if (...)
{
int e,g;
double f,q;
:
}
:
return (0);
}
Переменные e,g,f,q будут уничтожены после выполнения составного оператора. Отметим, что переменная q является локальной в составном операторе, т.е. она никоим образом не связана с переменной q объявленной в начале функции main с типом int. Отметим также, что выражение стоящее после return может быть заключено в круглые скобки, хотя наличие последних необязательно.