Основные определения
Программирование
- процесс создания компьютерных программ путем написания кода, который управляет поведением компьютера.
Цель программирования
- создать программу, которая будет выполнять требуемые действия с минимальными ошибками и наибольшей эффективностью.
Компьютерная программа обычно состоит из последовательности команд, каждая из которых выполняет определенную операцию или изменяет состояние данных.
Исполнитель - компонент или часть программы, которая фактически выполняет инструкции и операции, описанные в алгоритме.
Исполнитель отвечает за реализацию шагов алгоритма и обработку входных данных, чтобы достичь требуемого результата.
Алгоритм - это последовательный набор инструкций или шагов, предназначенных для решения определенной задачи или выполнения определенной операции.
Алгоритмы описывают, как следует выполнить конкретную задачу, обеспечивая точный и повторяемый способ решения проблемы.
Свойства алгоритмов
Дискретность: алгоритм состоит из простых операций, которые можно выполнить за конечное время.
Определенность: каждый шаг алгоритма должен быть ясно и однозначно определен состоянием системы
Понятность: алгоритм должен включать только те команды, которые доступны исполнителю и входят в его систему команд
Конечность: алгоритм должен завершиться за конечное число шагов
Массовость (универсальность): алгоритм должен быть применим к разным наборам начальных данных
Результативность: завершение алгоритма определёнными результатами.
Языки программирования
Язык программирования - формальный язык, предназначенный для записи компьютерных программ.
Языки низкого уровня используют команды, приближенные к машинному языку. Такие языки сложнее для человека, но позволяют точно указать компьютеру, что и как делать.
Языки высокого уровня приближены к человеческому языку. Такие языки проще для человека, но требуют больше работы от компьютера.
Язык "Си"
Создан Деннисом Ритчи в 1972 году в ходе работ над операционной системой UNIX.
Си - алгоритмический язык «не очень высокого уровня». Он дает возможность работать с такими типами данных и операциями, которые традиционно относят к языкам «низкого уровня» и в то же время предоставляет часть средств и методов, свойственных языкам высокого уровня.
Язык Си относится к числу компилируемых языков программирования. Это означает, что подготовка к выполнению Си-программы включает в себя следующие этапы:
- ввод исходного текста программы в файл с расширением «.С» при помощи какого-либо редактора текстов;
- компиляция программы, т.е. преобразование ее описания на входном языке в семантический эквивалент на машинном языке, называемый объектным модулем (файл с расширением «.OBJ»);
- построение готового к выполнению загрузочного модуля из объектных модулей, включая модули из внешних библиотек (файл с расширением «.EXE»).
Основные свойства языка Си:
- широкий набор управляющих конструкций для организации циклов и условных переходов;
- большой набор операторов и операций, многие из которых допускают прямую трансляцию в машинный код;
- многообразие примитивных типов данных, позволяющих управлять длиной целочисленных и вещественных переменных;
- наличие средств для конструирования новых типов данных;
- возможность непосредственной работы с машинными адресами через аппарат указателей;
- наличие препроцессора, позволяющего вносить изменение в текст программы непосредственно перед ее компиляцией;
- блочная структура программного кода;
- возможность работы с различными классами памяти и средства для модульного программирования.
Любая программа на языке Си включает в себя:
- Алфавит:
-
большие буквы латинского алфавита:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z -
малые буквы латинского алфавита:
a b c d e f g h i j k l m n o p q r s t u v w x y z -
десятичные цифры:
0 1 2 3 4 5 6 7 8 9 -
специальные символы:
пробел ! « # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ | ~
-
большие буквы латинского алфавита:
-
Имена объектов программы (идентификаторы):
Идентификаторами в языке Си являются последовательности букв и цифр, начинающиеся с буквы, причем символ подчеркивания (_) рассматривается компилятором как буква.
Большие и малые буквы латинского алфавита считаются различными.
Идентификаторы служат именами переменных, констант, функций, типов данных. -
Ключевые слова:
Ключевые слова - это предопределенные идентификаторы, имеющие специальные значения. Имена никаких объектов программы не должны совпадать c зарезервированными ключевыми словами:
- типы данных: char float short typedef void double int signed union enum long struct unsigned
- классы памяти: auto extern register static
- операторы: break default for return while case do goto sizeof continue else if switch
- специальные: const far huge pascal cdecl fortran near volatile -
Комментарии:
Под комментариями понимаются последовательности символов, игнорируемые компилятором. Комментарии имеют следующую форму:
/* текст */или// текстгде текст - это произвольная комбинация любых печатаемых символов. -
Константы:
Константы - числа (целые и вещественные), символы и строки символов, которые допустимо использовать в программе в смысле их значений.
Значение никакой константы не может быть изменено в процессе работы программы. Специальные директивы языка дают возможность присваивать константам любого типа символические имена. -
Операции:
Операции - действия, выполняемые программой над определенными в ней объектами.
Объекты программы, участвующие в операции, называются операндами.
Комбинация одного или большего числа операндов и символов операций, дающая единственное значение, образует выражение. - Операторы (инструкции):
Простейшим оператором языка Си является всякое выражение, заканчивающееся точкой с запятой.
Наиболее значительную группу операторов образуют операторы управления процессом выполнения программы:
- условный оператор и переключатель;
- операторы циклов;
- операторы передачи управления. - арифметические операции (+ - * / % ++ --)
- операции отношения (== != < > <= >=)
- логические операции (! || &&)
- побитовые операции (~ << >> & | ^)
- операции присваивания (= += -= *= /= %= <<= >>= &= ^= |=)
- операции над массивами ([])
- операции над структурами и объединениями (. ->)
- другие операции (? : , sizeof (тип), ())
Множество всех операций языка можно разделить на восемь групп: