Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемjeannekazakova
1 1 Лекция 3 Разработка алгоритмов и программ сверху вниз
2 2 Задача Дано целое n и вещественные x1, x2,..., xn. Составить программу печати заданных вещественных чисел в порядке возрастания (не убывания).
3 3 Вход: Введите количество чисел: 5 Введите числа: Выход: Упорядоченные числа:
4 4 Функциональная структура программы main Vvod Sort
5 5 1 этап. Разработка алгоритма функции main().
6 6 Алгоритм : 1. n = Vvod(x); /* Ввод n и массива x */ 2. Sort (x,n); /* Сортировка массива x по возрастанию*/ 3. Вывод сортированного по возрастанию массива x
7 7 2 этап
8 8 Алгоритм функции ввода данных int Vvod (float x[]) { Ввод n; for (i=0; i
9 9 Вывод массива x Вывод заголовка "Упорядоченные числа:"; for (i=0; i
10 10 Метод последовательного нахождения максимума // рассматривается n элементов // рассматривается n-1 элементов // рассматривается n-2 элементов // рассматривается n-3 элементов
11 11 Алгоритм функции сортировки массива x по возрастанию void Sort (float x[], int n) { for (k=n-1; k>0; k--) { Определение максимума среди элементов x[0],..., x[k] и его индекса imax. Обмен: x[imax] x[k]; }
12 12 3 этап Определение максимума среди элементов x[0],..., x[k] и его индекса imax.
13 13 Фрагмент программы: imax =0; for (i =1; i x[imax]) imax = i;
14 14 Программа: #include #define NMAX 100 /* Макс-е количество входных чисел*/ /* Функция ввода данных * / int Vvod (float x[]) { int n; /* Количество чисел */ int i; /* Индекс текущего числа */ printf ("\n Введите количество чисел\n"); scanf ("%d", &n); printf ("Введите числа\n"); for (i=0; i
15 15 /* Функция сортировки x массива по возрастанию */ void Sort (float x[], int n) { int k; /* Максимальный индекс просмотра*/ float r;/* Для обмена */ int imax;/* Индекс максимального элемента */ int i; /* Индекс текущего числа */ for (k=n-1; k>0; k--) { imax =0; for (i =1; i x[imax]) imax = i; /* Обмен x[imax] и x[k] */ r = x[imax]; x[imax] = x[k]; x[k] = r; }
16 16 /* Главная функция */ void main (void) { float x[NMAX]; /* Обрабатываемые числа*/ int n; /* Количество чисел */ int i; /* Индекс текущего числа */ /* 1. Ввод массива x */ n = Vvod(x); /* 2. Сортировка массива x по возрастанию */ Sort(x,n); /* 3. Вывод массива x */ printf("Упорядоченные числа:\n"); for (i=0; i
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.