Основные символы схемы алгоритма
Символы ввода-вывода данных:
- данные ввода/вывода (носитель не определен);
- ручной ввод данных с устройства любого типа, например, с клавиатуры;
- отображение данных в удобочитаемой форме на устройстве, например, дисплее.
Символы процесса:
- процесс - отображение функции обработки данных, т.е. операции приводящей к изменению значения указанного объекта;
- предопределенный процесс - отображение группы операций, которые определены в другом месте, например, в подпрограмме;
- решение - отображение функции, имеющей один вход и ряд альтернативных выходов, их которых только один может быть активизирован после анализа условия: указанного внутри этого символа.
Граница цикла - отображение начала и конца цикла,
или, наоборот, - условие завершения указывают в нижней границе.
Символы линий-отображают поток данных или управления. Линии - горизонтальные или вертикальные, имеющие только прямой угол перегиба. Стрелки - указатели направления не ставятся, если управление идет сверху-вниз или слева-направо.
Специальные символы
Соединитель - используется при обрыве линии и продолжении ее в другом месте (необходимо присвоить название).
Терминатор - вход из внешней среды или выход во внешнюю среду (начало или конец схемы программы).
Коментарий.
Пример простейшего линейного алгоритма
Наиболее часто в практике программирования требуется организовать расчет некоторого арифметического выражения при различных исходных данных. Например, такого:
при x>0 - вещественное, m - целое.
Разработка алгоритма обычно начинается с составления схемы. Продумывается оптимальная последовательность вычислений, при которой, например, отсутствуют повторения. При написании алгоритма рекомендуется переменным присваивать те же имена, которые фигурируют в заданном арифметическом выражении, либо иллюстрируют их смысл.
Для того чтобы не было "длинных" операторов, исходное выражение полезно разбить на ряд более простых. В нашей задаче предлагается схема вычислений, представленная на рис. 3.
Она содержит ввод и вывод исходных данных, линейный вычислительный процесс, вывод полученного результата. Заметим, что выражение вычисляется только один раз. Введя дополнительные переменные a,b,c, мы разбили сложное выражение на ряд более простых выражений.
Немного истории
Алгоритмический язык С был разработан в 1972 г. сотрудником фирмы AT&T Bell Laboratory Денисом Ритчи на базе языка В (автор К.Томпсон), который в свою очередь основывался на языке системного программирования BCPL. Первая версия языка была опубликована в книге авторов Д.Ритчи и Б.Кернигана и получила название стандарт K&R. Минимальная стандартная реализация, поддерживаемая любым компилятором, содержала всего 27 ключевых слов. Началось успешное развитие языка и чтобы избежать путаницы Американский институт стандартизации (American National Standart Institute) ввел в 1983 г. общий стандарт языка – ANSI стандарт.
Язык продолжает развиваться и в 1985 г. появляется язык С++, который в основном сохраняет все черты обычного С, но дополнен новыми существенными возможностями, которые позволили реализовать объектно-ориентированный стиль программирования.
Язык С отражает возможности современных компьютеров. Программы на С отличаются компактностью и быстротой исполнения. Структура С побуждает программиста использовать в своей работе нисходящее программирование, структурное программирование, пошаговую разработку модулей.
Области применения языка C - системное программирование и прикладные задачи с жесткими требованиями по скорости и памяти.
3. Синтаксис языка Cи
В языках программирования вместо номеров ячейкам памяти принято давать имена (идентификаторы), а содержимое ячеек называть переменными, или константами, в зависимости от того, изменяется значение в процессе работы или нет.
В языке Си фундаментальным понятием является инструкция (операция, оператор, функция), которая представляет собой описание определенного набора действий. Таким образом, программа, написанная на языке Си, состоит из последовательности инструкций.
Алфавит языка
Каждому из множества значений, определяемых одним байтом, - от 0 до 255, ‑ в таблице знакогенератора вычислительной машины ставится в соответствие символ. По системе кодировки фирмы IBM символы с кодами от 0 до 127, образующие первую половину таблицы знакогенератора, построены по стандарту ASCII и одинаковы на всех IBM-совместимых компьютерах. Вторая половина символов (коды 128 … 255) может отличаться на разных компьютерах. Обычно коды от 128 до 175 и от 224 до 239 используются для размещения символов национального алфавита, коды с 176 по 223 отводятся под символы псевдографики и коды с 240 по 255 – под специальные знаки (Приложение 1).
Алфавит языка Си включает:
- прописные и строчные буквы латинского алфавита, а также знак подчеркивания (код ASCII 95);
- арабские цифры от 0 до 9;
- специальные символы:
+(плюс) –(минус) *(звездочка) /(дробная черта) =(равно) >(больше) <(меньше) ;(точка с запятой) &(амперсант) [ ](квадратные скобки) { }(фигурные скобки) ()(круглые скобки) _(знак подчеркивания) (пробел) .(точка) ,(запятая) :(двоеточие) #(номер) %(процент) ~(поразрядное отрицание) ?(знак вопроса) !(восклицательный знак) \(обратный слеш).
- пробельные (разделительные) символы: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка.
Лексемы
Из символов алфавита формируются лексемы языка – минимальные значимые единицы текста в программе:
- идентификаторы;
- ключевые (зарезервированные) слова;
- знаки операций;
- константы;
- разделители (скобки, точка, запятая, пробельные символы).
Границы лексем определяются другими лексемами, такими, как разделители или знаки операций, а также комментариями.