Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.69.167 (0.006 с.) |