русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции


Дата добавления: 2013-12-23; просмотров: 573; Нарушение авторских прав


Return 0;

Do

I2=n-i1-1;

I1 /= 2;

I1=n-1;

Int i, i1, i2, i3, m, per;

Int vector_min, vector_max, temp;

Int main()

Return 0;

Int i, m, vector_min, vector_max, temp;

Int main()

Return 0;

Sn+=i;

Int main()

{

int n, sn=0;

printf(“\nДо какого числа суммировать:”);

scanf(“%d”, &n);

for (int i = 1; i <= n; i++)

{

}

printf(“\nСумма чисел от 1 до %d равна %d ”, n, sn);

}

3. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом обменной сортировки (пузырька):

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

{

time_t t;// текущее время для инициализации

// генератора случайных чисел

srand((unsigned) time(&t));// инициализация генератора // случайных чисел

printf("\nВведите нижнюю границу:");

scanf(“%d”, &vector_min);

printf("\nВведите верхнюю границу:");

scanf(“%d”, &vector_max);

printf("\nВведите размер вектора:");

scanf(“%d”, &n);

int vector[n];

printf("\nИсходный вектор:\n");

m = vector_max–vector_min + 1;

for (i=0; i<n; i++)



{

// получение случайного числа в диапазоне

// от vector_min до vector_max

vector[i]=rand()% m + vector_min;

printf(" %5d", vector[i]);

}

printf("\n");

for (m=n-2; m>=0 ;m--)

for (i=0; i<=m ;i++)

if (vector[i] > vector[i+1])

{

temp=vector[i];

vector[i]=vector[i+1];

vector[i+1]=temp;

}

printf("\nОтсортированный вектор:\n");

for (i=0; i<n; i++)



{

printf(" %5d", vector[i]);

}

printf("\n");

}

4. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом Шелла (обменная сортировка с убывающим шагом). В этом случае массив делится на группы по два элемента и производится сортировка в каждой группе: максимальный элемент ставится на второе место. После этого массив делится на группы по четыре элемента, и они снова сортируются. Количество элементов в сортируемой группе удваивается до тех пор, пока не остается одна группа, включающая все элементы массива, которая и сортируется окончательно:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

{

time_t t;// текущее время для инициализации

// генератора случайных чисел

srand((unsigned) time(&t));// инициализация генератора // случайных чисел

printf("\nВведите нижнюю границу:");

scanf(“%d”, &vector_min);

printf("\nВведите верхнюю границу:");

scanf(“%d”, &vector_max);

printf("\nВведите размер вектора:");

scanf(“%d”, &n);

int vector[n];

printf("\nИсходный вектор:\n");

m= vector_max–vector_min + 1;

for (i=0; i<n; i++)



{

// получение случайного числа в диапазоне

// от vector_min до vector_max

vector[i]=rand()% m + vector_min;

printf(" %5d", vector[i]);

}

printf("\n");

while (i1>=1)

{

{

per=1;

for (i=0; i<=i2; i++)

{

i3=i+i1;

if (vector[i] > vector[i3])

{

temp=vector[i];

vector[i]=vector[i3];

vector[i3]=temp;

per=0;

} // if (vector[i] > vector[i3])

} // for (i=0; i<=i2; i++)

} // do

while (!per);

} // while (i1>=1)

printf("\nОтсортированный вектор:\n");

for (i=0; i<n; i++)



{

printf(" %5d", vector[i]);

}

printf("\n");

}

 

 

В алгоритмах часто встречаются блоки, в которых процесс вычисления носит одинаковый характер, но требует использования различных исходных данных. Для каждого из таких повторяющихся блоков может быть составлена отдельная программа, причем таким образом, чтобы к ней можно было бы обратиться из любого места основной программы и после ее выполнения вернуться обратно в то же место, откуда к ней обратились. Такая отдельная программа, к которой можно обратиться из другой программы, называется подпрограммой.

Подпрограмма, произведя вычисления при заданных (входных) значениях аргументов, обеспечивает возврат в вызвавшую ее программу, причем в то же самое место, откуда она была вызвана. Разбиение большой программы на несколько мелких подпрограмм облегчает процесс программирования: маленькие подпрограммы легко читаются и понимаются, поэтому облегчается их отладка и тестирование. После того, как подпрограмма написана и отлажена, можно забыть, как она сделана. Достаточно знать, какие входные аргументы необходимы для ее работы, и что она дает на выходе.

Таким образом, подпрограмма представляет собой самостоятельную программу, имеющую входные и выходные аргументы (параметры), которая может быть написана и отлажена отдельно от других программ, а затем использована в них.

Примерами подпрограмм являются программы вычисления отдельных функций, имеющихся в библиотеках языков программирования – стандартные функции, а также функции ввода-вывода. Эти подпрограммы размещены в системной библиотеке языка, подключаемой к программе пользователя при ее обработке. Значит, используя в своей программе, например, функцию printf, мы обращаемся к стандартной библиотеке ввода-вывода stdio.h, подсоединяемой к нашей программе директивой препроцессора #include <stdio.h>.

В отличие от стандартных подпрограмм, входящих в системные библиотеки, в дальнейшем мы будем рассматривать подпрограммы, которые создает сам программист в процессе решения конкретной задачи.

В отличие от Паскаля, в языке Си используется только один вид подпрограмм – функции. Вообще любая программа на Си представляет собой совокупность взаимосвязанных функций, одна из которых является основной (головной) – main. С нее и начинается выполнение программы.

Функция – это подпрограмма, состоящая из заголовка, описания локальных (внутренних) переменных и блока (операторов, реализующих алгоритм вычислений). Она предназначена для вычисления единственного значения, зависящего от нескольких аргументов (формальных параметров).

Один из недостатков Паскаля заключался в том, что описание используемой функции нужно было помещать внутрь вызывающей ее программы, в раздел описания процедур и функций. В языке Си описание функций помещается отдельно от вызывающих программ, а перед заголовком main() основной программы помещаются прототипы (объявления) этих функций:



<== предыдущая лекция | следующая лекция ==>
Для i от 1 до n выполнять | Рекурсия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.