- •1. Простейшие программы
- •2. Переменные
- •5. Методы отладки программ
- •6. Работа в графическом режиме
- •Void Tr ( int X, int y, int c )
- •8. Функции
- •9. Структура программ
- •Void Square ( int X, int y, int a );
- •Void Kvadrat ( int X, int y, int a );
- •If ( kbhit() ) { ... }
- •11. Случайные и псевдослучайные числа
- •Int random ( int n )
- •1. Массивы
- •Int a[10], b[20]; // 2 массива на 10 и 20 целых чисел
- •Int random (int n) { return rand() % n; }
- •2. Символьные строки
- •Void strcpy1 ( char s1[], char s2[] )
- •Int n; // номерсимвола '.'
- •Intx, y;
- •3. Матрицы (двухмерные массивы)
- •Int random ( int n ) { return rand() % n; }
- •Int total, a[m][n];
- •Void SortStrings ( char *s[], int n ) // *s[] – массивуказателей
- •Int I, count;
- •5. Управление памятью
- •Int n; // размер массива (заранее неизвестен)
- •Int *a; // указатель для выделения памяти
- •IntM, n, I;
- •6. Рекурсия
- •Int Factorial ( int n )
- •Void Factorial ( int n, int &fact )
- •Int Factorial ( int n )
- •Int HowMany( char *s, char *word )
- •If ( ! p ) return 0; // ненашли – 0 слов
- •Void RecCircle ( float X, float y, float r, int n )
- •Initwindow(600, 500);
- •Void Pifagor( float X, float y, float l,
- •Void Combinations ( int a[], int n, int k, int q )
- •Void PrintData ( int Data[], int n )
- •Void Permutations ( int a[], int n, int q )
- •Int temp;
- •Void Split(int r, int a[], int q)
- •Void QuickSort ( int a[], int from, int to )
- •Int X, I, j, temp;
- •7. Структуры
- •Int year; // год издания, целое число
- •Int pages; // количество страниц, целое число
- •Int year;
- •Int pages;
- •Void Year2009( Book b )
- •Void Year2009( Book &b )
- •Void Year2009( Book *b ) // параметр – адрес структуры
- •Void SortYear ( pBook p[], int n )
- •Int year;
- •Int pages;
9. Структура программ
Составные части программы
В составе программы можно выделить несколько частей:
• Подключение заголовочных файлов — это строки, которые начинаются с #include
• Объявление констант (постоянных величин):
const N = 20;
• Глобальные переменные — это переменные, объявленные вне основной программы и подпрограмм. К таким переменным могут обращаться все процедуры и функции данной программы (их не надо еще раз объявлять в этих процедурах).
• Объявление функций и процедур — обычно ставятся выше основной программы. По требованиям языка Си в тот момент, когда транслятор находит вызов подпрограммы, она
должна быть объявлена и известны типы всех ее параметров.
• Основная программа может располагаться как до всех подпрограмм, так и после них. Не
рекомендуется вставлять ее между подпрограммами, так как при этом ее сложнее найти.
Глобальные и локальные переменные
Глобальные переменные доступны из любой процедуры или функции. Поэтому их надо
объявлять вне всех подпрограмм. Остальные переменные, объявленные в процедурах и функциях, называются локальными (местными), поскольку они известны только той подпрограмме,где они объявлены. Следующий пример показывает различие между локальными и глобальными переменными.
• Глобальные переменные не надо заново объявлять в подпрограммах.
• Если в подпрограмме объявлена локальная переменная с таким же именем, как и глобальная переменная, то используется локальная переменная.
• Если имена глобальной и локальной переменных совпадают, то для обращения к глобальной переменной в подпрограмме перед ее именем ставится два двоеточия:
Однако специалисты рекомендуют использовать как можно меньше глобальных переменных, а лучше всего – не использовать их вообще, потому что глобальные переменные
• затрудняют анализ и отладку программы;
• повышают вероятность серьезных ошибок — можно не заметить, что какая-то подпрограмма изменила глобальную переменную;
• увеличивают размер программы, так как заносятся в блок данных, а не создаются в процессе выполнения программы.
Поэтому глобальные переменные применяют в крайних случаях:
• для хранения глобальных системных настроек (цвета экрана и т.п.);
• если переменную используют три и более подпрограмм и по каким-то причинам неудобно передавать эти данные в подпрограмму как параметры.
Везде, где можно, надо передавать данные в процедуры и функции через их параметры. Если же надо, чтобы подпрограмма меняла значения переменных, надо передавать параметр по ссылке.
Оформление текста программы
Необходимость оформления программы.
Зачем же красиво и правильно оформлять тексты программ? На этот вопрос вы сможете ответить сами, сравнив две абсолютно одинаковые (с точки зрения транслятора) программы:
То, что в них отличается и называется грамотным оформлением (очевидно, что оно присутствует в первой программе).
Оформление текста программы необходимо для того, чтобы
• отлаживать программу (искать и исправлять ошибки в ней)
• разбираться в алгоритме работы программы
Оформление процедур и функций
При оформлении функций и процедур рекомендуется придерживаться следующих правил:
• Одинаковые операции в разных частях программы оформляются в виде подпрограмм.
• Имена функций и процедур должны быть информативными, то есть нести информацию о том, что делает эта подпрограмма. К сожалению, транслятор не понимает русские имена,поэтому приходится писать по-английски. Если вам сложно писать имена на английском языке, можно писать русские слова английскими буквами. Например, процедуру, рисующую квадрат, можно объявить так: