Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сортировка простыми вставками.Содержание книги
Поиск на нашем сайте Просматривается последовательность чисел а1,…,а n и каждый очередной элемент а i вставляется на подходящее место в уже упорядоченную совокупность а1,…,а i -1. Это место определяется последовательным сравнением а i с упорядоченными элементами а 1,…,а i -1.
Текст программы
void main() {float a[30]={6,1,34,16,8,32,56,3,8,4},dop; int n,i,j,k;
n=10; for (i=0;i<n;i++) printf(" %5.1f",a[i]);
for (i=1;i<n;i++) for (j=0;j<=i-1;j++) if (a[i]<a[j]) { dop=a[i]; for (k=i;k>j;k--) a[k]=a[k-1]; a [ j ]= dop; }
printf("\n отсортированный массив\n "); for (i=0;i<n;i++) printf(" %6.1f",a[i]);
}
Пример 4 .7 Задана матрица. Отсортировать положение строк по возрастанию элементов ее первого столбца
void main() { float a[10][10],dop; int n,m,i,j,f=1; n=5; m=5; printf("\n исходная матрица");
for (i=0;i<n;i++) { printf(" \n"); for (j=0;j<m;j++) { a[i][j]=0.001*rand(); printf(" %5.1f",a[i][j]); } }
while(f==1) { f=0; for (i=0;i<n-1;i++) if (a[i][0]>a[i+1][0]) for (j=0;j<m;j++) { dop=a[i][j]; a[i][j]=a[i+1][j]; a[i+1][j]=dop; f=1; } } printf("\n отсортированная матрица"); for (i=0;i<n;i++) { printf(" \n"); for (j=0;j<m;j++) printf(" %5.1f",a[i][j]); } } Контрольные вопросы для самопроверки 1. Какие массивы называются упорядоченными? 2. В чем заключается смысл сортировки? 3. Как выглядит алгоритм сортировки выбором? 4. Как выглядит алгоритм сортировки обменами? 5. Как выглядит алгоритм сортировки простыми вставками?
ФУНКЦИИ
Функция - это часть программы, описывающая выполнение заданного набора действий. В языке С любая программа - это функция с именем main(). Функций могут быть стандартными или разработаны программистом. Стандартные функции - это готовые к использованию функции, например sin(x), cos (x), scanf(...), printf(...) и другие. Они размещены в библиотеках языка С. Для их использования необходимо сначала подключить соответствующий заголовочный файл с помощью директивы препроцессора #include, а затем вызвать необходимую стандартную функцию, указав ее имя и задав значения аргументов. Функции, составленные программистом это новые, дополнительные функции. Эти функции разрабатываются, когда структура программы достаточно сложная, когда необходимо несколько раз выполнить одинаковый набор действий для различных величин и т.п. Для использования функций в программе необходимо: 1. Описать функцию. 2. Сделать к ней обращения (вызвать функцию). Описание функции Форма описания функции имеет вид:
Заголовок функции: тип>name(<тип1>арг1,…<тип n> арг n) <тип> – тип результата, который возвращает функция. Тип может буть определенным – int, float, char, или неопределенным – void. Если тип не определен, то по умолчанию он также может быть- int; name – идентификатор для обозначения функции (<тип1>арг1,…<тип n> арг n) – список аргументов функции с указанием их типов. <тип_і> – тип аргумента; арг_і – имя аргумента. Функция может не иметь аргументов, тогда скобки остаются пустыми. Вызов функции Чтобы вызвать функцию, нужно указать ее имя и задать конкретные аргументы (фактические аргументы, или параметры), для которых функция выполняет вычисления. Имеются две формы вызова функций: 1. Функция имеет тип void. Вызов является самостоятельным оператором: name (факт_арг1, факт_арг2,...); Фактические аргументы должны соответствовать списку аргументов в описании функции (по количеству, порядку следования, типам).
Пример 6.1: Составить функцию, которая определяет большее значение из двух заданных чисел f = max(x,y) и печатает результат в самой функции. void f_max (float a, float b) { float max; if(a>b) max = a; else max = b; printf (“\n %4.1f”, max); } Int main() { float x, y; scanf(“%f%f”,&x,&y); f_max(y, x); }
2. Функция имеет определенный тип (не void). Вызов не является самостоятельным оператором. Он записывается внутри другого оператора или выражения (присваивания, if, printf,...): b = name (факт_арг1, факт_арг2,...); Пример 6.2 составить функцию, которая определяет большее значение из двух заданных f = max(x, y) и распечатать результат в основной программе. float fmax (float a, float b) { float max; if(a>b) max = a; else max = b; return max; } void main() { float x, y, z; scanf(“%f%f”,&x,&y); z =fmax(y, x); printf(“\n%4.1f”, z); }
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2021-04-04; просмотров: 94; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.01 с.) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||