- •1 Порядок разработки программного продукта
- •2 Структура программы на языке с
- •Int age; // Поле age
- •Void main(void) // Основная функция
- •3 Типы данных языка с
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Void show_string(char *string)
- •Void main(void)
- •4 Операции языка с
- •Арифметические операции
- •Void main(void)
- •Void main(void)
- •Логические операции
- •Void main(void)
- •Операции отношения
- •Поразрядные операции
- •Побитовые операции
- •Void main(void)
- •Адресные операции
- •Операция “условие”
- •Void main(void)
- •Операция sizeof()
- •Void main(void)
- •Int size;
- •Void main(void)
- •Int *iptr;
- •Void main(void)
- •Int *list,I;
- •Операция вызова функции
- •5 Операторы языка с
- •Условный оператор if
- •Оператор switch
- •Void main(void)
- •Void main(void)
- •Оператор цикла for
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Цикл while
- •Void main(void)
- •Цикл do ... While
- •Void main(void)
- •Вложенные циклы
- •Void main(void)
- •Void main(void)
- •Int I,j,score;
- •Int scores[line][column];
- •Оператор безусловного перехода
- •Оператор break
- •Void main(void)
- •Оператор continue
- •Void main(void)
- •If (I % 5) continue;
- •Оператор return
- •6 Организация функций
- •Int sum_vect(int V[], int n)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7 Библиотечные функции
- •7.1 Функции форматного ввода-вывода
- •Int printf(char*format[, argument,...]);
- •Void main(void)
- •Void main(void)
- •Int scanf(char *format[,argument,...]);
- •Функции для работы с файлами
- •Void main(void)
- •Int vect[line];
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7.3 Графические средства языка с
- •Void main(void)
- •Initgraph(&gdriver, &gmode, ""); // Инициализация графического режима
- •Int maxX, maxY;
- •Void far initgraph(int far *driver, int far *mode, char far *path);
- •Void main(void)
- •Int driver, mode, errorcode;
- •Void far rectangle(int left, int top, int right, int bottom);
- •Void far setviewport(int left, int top, int right, int bottom, int flag);
- •Void far circle(int X, int y, int radius);
- •7.4 Функции для работы со строками
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •7.5 Математические функции
- •Продолжение таблицы а.7
- •Продолжение таблицы а.7
Void main(void)
{
int i;
printf("Числа, кратные 5 \n");
for (i=0; i<1000; i++)
{
If (I % 5) continue;
printf(" %d \n",i);
}
}
Оператор return
Оператор return используется для немедленного выхода из текущего блока и возврата в основную программу или другую вызывающую функцию (из которой был сделан вызов) какого-то значения. Форма оператора:
return (выражение);
Подробнее он будет рассмотрен в следующем разделе.
6 Организация функций
Функция — это именованная часть программы, предназначенная для решения конкретной задачи, к которой можно обращаться столько раз, сколько требуется.
Основная форма определения функции:
тип имя_функции([тип аргумент,...])
{
тело функции;
retutn();
}
Прототип функции: (описание)
тип имя_функции([тип аргумента,...]);
Если функция внешняя, то перед именем типа пишется служебное слово external.
Вызов функции
имя_функции([аргумент,...]);
имя_переменной = имя_функции([аргумент,...]);
// Пример 6.1.
// Найти сумму элементов вектора
#include <stdio.h>
Int sum_vect(int V[], int n)
{
int i, s = 0;
for (i=0; i<n; i++) s+=v[i];
return(s);
}
Void main(void)
{
int summa, vect[9]={1,2,3,4,5,6,7,8,9};
summa = sum_vect(vect, 9);
printf (“Сумма элементов вектора %d\n”,summa);
}
Оператор return возвращает из блока функции в основную программу значение s.
Имя функции — это глобальная переменная программы, которая содержит адрес блока функции.
Тип функции определяется типом возвращаемого параметра. Если тип не указан, то по умолчанию выбирается тип int. Функция может иметь тип void (не определен), тогда оператор return не используется.
Аргумент — это значение, которое передается из основной или другой функции в качестве исходных данных. Аргументом может быть любой объект данных языка С: переменная, указатель, константа, массив. Функция может иметь переменное число аргументов или не иметь аргументов вообще. В определении и описании функции перед аргументом пишется его тип. Если тип аргумента не указан, то по умолчанию задается тип int. Количество и тип аргументов в описании и вызове должны совпадать, хотя для аргумента может быть определен только тип. В качестве аргумента можно использовать и выражение языка С, но тип значения этого выражения должен совпадать с типом соответствующего аргумента. Правило передачи аргумента следующее: аргумент передается функции по значению, т.е. передается не переменная, а ее копия. Поэтому, если внутри функции значение аргумента изменяется, в вызывающем блоке значение не изменится.
Рассмотрим несколько вариантов организации функций нахождения максимального из двух чисел:
1-й вариант max (int a, int b) // Тип функции отсутствует,
{ // по умолчанию int
int m;
if (a > b) m = a; // Перед else ставится ;
else m = b;
return m;
}
2-й вариант max (int a, int b)
{
if (a > b) return a; // Здесь два оператора return
else return b; // Возврат в вызывающий блок
} // Произойдет по первому
// встретившемуся оператору return
3-й вариант max (int a, int b)
{
if (a > b) return a;
return b;
}
4-й вариант max (int a, int b)
{
return (a > b)? a:b; // Тернарная операция
}
Функции часто используются при выполнении арифметических операций. В примере 6.2 показаны функции возведения числа в квадрат и определения суммы двух чисел, различные формы записи аргументов.
//Пример 6.2.
// Пример организации функций для выполнения арифметических операций
#include <stdio.h>
float sum(float a, float b); // Прототип функции sum()
float sq(float a); // Прототип функции sq()