Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в программирование на С.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
930.82 Кб
Скачать

Int scanf(const char * format, ……); возвращаемое значение – число считанных полей

format - %d,%f,%s,%lf,%c

Данные в языках “С/C++” могут быть локальными или глобальными. Локальными могут быть только переменные, т.е. переменные функции и параметры функции и к локальным переменным можно ссылаться толь в функции, в которой они определены. Глобальные переменные объявляются вне функции и они сохраняют свое значение в течении всего времени выполнения программы, а также на них можно ссылаться в любой функции, которая объявлена после объявления глобальных переменных.

3.1 Определение функции:

тип_возвращаемого_значения имя_функции (список параметров)

{

объявления и операторы, т.е. тело функции

}

тип_возвращаемого_значения - это тип данных результата, возвращаемого из функции. Тип возвращаемого значения void указывает, что функция не возвращает никакого значения, или на прямую не возвращает никакого значения.

имя_функции – это любой правильно написанный идентификатор.

список параметров – это список разделенных запятыми объявлений тех параметров, которая получает функция при вызове. Если функция не получает никаких значений, список параметров задается как void, т.е. список параметров пустой.

Прототип функции: является одной из наиболее важных особенностей языка, т.к. прототип функции указывает компилятору тип данных, возвращаемый функцией, количество параметров, которое ожидает функция, тип параметров и ожидаемый порядок их следования.

Оператор return . Оператор return завершает выполнения функции, в которой он встретился, и передает управление в вызывающую программу в точку вызова. Оператор return имеет следующий вид: return выражение; Выражение может быть как константой и вычисляемым выражением. Оператор return в теле функции может встречаться несколько раз.

Примеры:

  1. Используя глобальную переменную, программа считает квадрат вводимого числа с использованием функции.

#include<stdio.h>

void kvadrat();// прототип функции

int x;// глобальная переменная, следовательно она понимается как в функции main(), так и в

//функции kvadrat()

void main(){

printf("x=");

scanf("%d",&x);

kvadrat();//вызов функции

}

void kvadrat(){// описание функции

printf("%d^2=%d\n",x,x*x);

}

  1. Неправильный пример, с использованием локальной переменной.

#include<stdio.h>

void kvadrat();

void main(){

int x;// локальная переменная, для функции main(), поэтому она не доступна в функции kvadrat()

printf("x=");

scanf("%d",&x);

kvadrat();

}

void kvadrat(){

printf("%d^2=%d\n",x,x*x);

}

  1. Правильный пример, с использованием локальной переменной

#include<stdio.h>

void kvadrat(int);//функция с параметром

void main(){

int x;// локальная переменная, для функции main(), поэтому она не доступна в функции kvadrat()

printf("x=");

scanf("%d",&x);

kvadrat(x);

}

void kvadrat(int a){

printf("%d^2=%d\n",a,a*a);

}

При вызове функции мы передаем ей переменную, с которой она должна работать, т.е. создается локальная переменная а, которая получает то же значение, что и х. После вызова функции kvadrat() все локальные переменные уничтожаются автоматически.

  1. Пример с использованием возвращаемого значения и параметром

#include<stdio.h>

int kvadrat(int);//функция с параметром и возвращаемым значением

void main(){

int x,kv;// локальная переменная, для функции main(), поэтому она не доступна в функции kvadrat()

printf("x=");

scanf("%d",&x);

kv=kvadrat(x);

printf(“%d^2=%d\n”,x,kv);

}

int kvadrat(int a){

int y;

y= a*a;

return y;// return a*a;

}

  1. Ввести 5 чисел x1,x2,x3,x4,x5 и определить максимальное из x1,x2,x3; из x4,x2,x3; из x4,x5,x3. Использовать функцию, которая получает 3 числа и возвращает максимальное из них

#include<stdio.h>

int max_3(int, int, int);

void main(){

int x1,x2,x3,x4,x5,max1,max2,max3;

printf("5 chisel:");

scanf("%d%d%d%d%d",&x1,&x2,&x3,&x4,&x5);

max1=max_3(x1,x2,x3);

printf("Iz chisel: %d %d %d max=%d\n",x1,x2,x3,max1);

max2=max_3(x4,x2,x3);

printf("Iz chisel: %d %d %d max=%d\n",x4,x2,x3,max2);

max3=max_3(x3,x4,x5);

printf("Iz chisel: %d %d %d max=%d\n",x4,x5,x3,max3);

}

int max_3(int a,int b,int c){

int max=a;

if(max<b)

max=b;

if(max<c)

max=c;

return max;

}

  1. Ввести 5 чисел x1,x2,x3,x4,x5 и определить минимальное из x1,x2,x3; из x4,x2,x3; из x4,x5,x3. Использовать функцию, которая получает 3 числа и возвращает минимальное из них

  2. Ввести 5 чисел x1,x2,x3,x4,x5 и определить минимальное и максимальное из x1,x2,x3; из x4,x2,x3; из x4,x5,x3. Использовать 2 функции, 1-ая получает 3 числа и возвращает минимальное из них, 2-ая получает 3 числа и возвращает максимальное из них

  3. Написать функцию, которая считает факториал числа. Ввести 3 числа, посчитать их факториалы.

  4. Решение квадратного уравнения, используя 3 функции: 1-ая печатает уравнение, 2-ая считает дискриминант, 3-я выводит корни уравнения.

  5. Функция, которая получает степень n и основание x и возвращает xn.

  6. Функция получает 2 целых числа и возвращает деление этих чисел.

  7. Функция, которая получает число и определяет, является ли данное число совершенным или нет. Используя эту функцию в программе, которая определяет и печатает все совершенные числа от 1 до 1000. Напечатайте все сомножители каждого совершенного числа, чтобы убедится, чтобы убедиться, что число действительно совершенно.