SlideShare a Scribd company logo
1 of 16
Лекция 3
Разработка
алгоритмов и
программ
сверху вниз

1
Задача
Дано целое n и вещественные x1, x2, ...,
xn. Составить программу печати
заданных вещественных чисел в порядке
возрастания (не убывания).

2
Вход:
Введите количество чисел: 5
Введите числа: 12.5 6 14 -3 10
Выход:
Упорядоченные числа:-3.0 6.0 10.0 12.5 14.0

3
Функциональная структура программы

main

Vvod

4

Sort
1 этап.

Разработка
алгоритма функции
main().

5
Алгоритм :


1. n = Vvod(x); /* Ввод n и массива x */



2. Sort (x,n); /* Сортировка массива x по
возрастанию*/
3. Вывод сортированного по возрастанию
массива x



6
2 этап

7
Алгоритм функции ввода данных
int Vvod (float x[])
{
Ввод n;
for (i=0; i<n; i++)
Ввод x[i];
Возврат n;
}
8
Вывод массива x
Вывод заголовка "Упорядоченные числа:";
for (i=0; i<n; i++)
Вывод x[i];

9
Метод последовательного
нахождения максимума
2.5 6 14 -3 10
2.5 6 10 -3 14
2.5 6 10 -3
2.5 6 -3 10

// рассматривается n-1 элементов

2.5 6 -3
2.5 -3 6

// рассматривается n-2 элементов

2.5 - 6
-3 2.5

10

// рассматривается n элементов

// рассматривается n-3 элементов
Алгоритм функции сортировки
массива x по возрастанию
void Sort (float x[], int n)
{ for (k=n-1; k>0; k--)
{ Определение максимума среди
элементов x[0], ... , x[k] и его
индекса imax.
Обмен: x[imax] <--> x[k];
}
11
3 этап
Определение
максимума среди
элементов x[0], ... , x[k]
и его индекса imax.

12
Фрагмент программы:




13

imax =0;
for (i =1; i <= k; i++)
if (x[i] > x[imax]) imax = i;
Программа:














14



#include <stdio.h>
#define NMAX 100 /* Макс-е количество входных чисел */
/* Функция ввода данных * /
int Vvod (float x[])
{
int n;
/* Количество чисел
*/
int i;
/* Индекс текущего числа */
printf ("nВведите количество чиселn");
scanf ("%d", &n);
printf ("Введите числаn");
for (i=0; i<n; ++i)
scanf("%f", &x[i]);
return n;
}
/* Функция сортировки x массива по возрастанию */
void Sort (float x[], int n)
{
 int k;
/* Максимальный индекс просмотра*/

















}

15

float r;
/* Для обмена
*/
int imax;
/* Индекс максимального элемента */
int i;
/* Индекс текущего числа
*/
for (k=n-1; k>0; k--)
{ imax =0;
for (i =1; i <= k; i++)
if (x[i] > x[imax]) imax = i;
/* Обмен x[imax] и x[k] */
r = x[imax];
x[imax] = x[k];
x[k] = r;
}















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<n; ++i)
printf (" %4.1f", x[i]);
}

*/
*/
*/

More Related Content

What's hot

Issledov 10
Issledov 10 Issledov 10
Issledov 10 Katya1310
 
3.3 Конструкторы и деструкторы
3.3 Конструкторы и деструкторы3.3 Конструкторы и деструкторы
3.3 Конструкторы и деструкторыDEVTYPE
 
Matlab: Вычисление производной
Matlab: Вычисление производнойMatlab: Вычисление производной
Matlab: Вычисление производнойDmitry Bulgakov
 
5.4 Ключевые слова static и inline
5.4 Ключевые слова static и inline5.4 Ключевые слова static и inline
5.4 Ключевые слова static и inlineDEVTYPE
 
3.1 Структуры
3.1 Структуры3.1 Структуры
3.1 СтруктурыDEVTYPE
 
2.2 Стек вызовов
2.2 Стек вызовов2.2 Стек вызовов
2.2 Стек вызововDEVTYPE
 
4.2 Перегрузка
4.2 Перегрузка4.2 Перегрузка
4.2 ПерегрузкаDEVTYPE
 
6.2 Шаблоны функций
6.2 Шаблоны функций6.2 Шаблоны функций
6.2 Шаблоны функцийDEVTYPE
 
4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методов4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методовDEVTYPE
 
3.2 Методы
3.2 Методы3.2 Методы
3.2 МетодыDEVTYPE
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеAndrey Dolinin
 
Matlab: Вычисление предела
Matlab: Вычисление пределаMatlab: Вычисление предела
Matlab: Вычисление пределаDmitry Bulgakov
 
Построение графика кусочно-заданной функции с точками разрыва в Microsoft Excel
Построение графика кусочно-заданной функции с точками разрыва в Microsoft ExcelПостроение графика кусочно-заданной функции с точками разрыва в Microsoft Excel
Построение графика кусочно-заданной функции с точками разрыва в Microsoft ExcelВлад Трубников
 
S6 fsm-mealy amp-amp_moore
S6 fsm-mealy amp-amp_mooreS6 fsm-mealy amp-amp_moore
S6 fsm-mealy amp-amp_mooressuser3ad198
 
2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод2.8 Строки и ввод-вывод
2.8 Строки и ввод-выводDEVTYPE
 
лекция 3. программирование циклов
лекция 3. программирование цикловлекция 3. программирование циклов
лекция 3. программирование цикловstudent_kai
 

What's hot (20)

Issledov 10
Issledov 10 Issledov 10
Issledov 10
 
3.3 Конструкторы и деструкторы
3.3 Конструкторы и деструкторы3.3 Конструкторы и деструкторы
3.3 Конструкторы и деструкторы
 
8 3-3
8 3-38 3-3
8 3-3
 
Matlab: Вычисление производной
Matlab: Вычисление производнойMatlab: Вычисление производной
Matlab: Вычисление производной
 
5.4 Ключевые слова static и inline
5.4 Ключевые слова static и inline5.4 Ключевые слова static и inline
5.4 Ключевые слова static и inline
 
3.1 Структуры
3.1 Структуры3.1 Структуры
3.1 Структуры
 
2.2 Стек вызовов
2.2 Стек вызовов2.2 Стек вызовов
2.2 Стек вызовов
 
4.2 Перегрузка
4.2 Перегрузка4.2 Перегрузка
4.2 Перегрузка
 
6.2 Шаблоны функций
6.2 Шаблоны функций6.2 Шаблоны функций
6.2 Шаблоны функций
 
4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методов4.4 Таблица виртуальных методов
4.4 Таблица виртуальных методов
 
3.2 Методы
3.2 Методы3.2 Методы
3.2 Методы
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция Повторение
 
Matlab: Вычисление предела
Matlab: Вычисление пределаMatlab: Вычисление предела
Matlab: Вычисление предела
 
арифметические действия над элементами массива
арифметические действия над элементами массиваарифметические действия над элементами массива
арифметические действия над элементами массива
 
Построение графика кусочно-заданной функции с точками разрыва в Microsoft Excel
Построение графика кусочно-заданной функции с точками разрыва в Microsoft ExcelПостроение графика кусочно-заданной функции с точками разрыва в Microsoft Excel
Построение графика кусочно-заданной функции с точками разрыва в Microsoft Excel
 
S6 fsm-mealy amp-amp_moore
S6 fsm-mealy amp-amp_mooreS6 fsm-mealy amp-amp_moore
S6 fsm-mealy amp-amp_moore
 
2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод
 
условия, подпрограммы
условия, подпрограммыусловия, подпрограммы
условия, подпрограммы
 
лекция 3. программирование циклов
лекция 3. программирование цикловлекция 3. программирование циклов
лекция 3. программирование циклов
 
Progr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functionsProgr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functions
 

Viewers also liked

лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3student_kai
 
лекция№7
лекция№7лекция№7
лекция№7student_kai
 
лекция№3
лекция№3лекция№3
лекция№3student_kai
 
камера сгорания
камера сгораниякамера сгорания
камера сгоранияstudent_kai
 
лекция №8
лекция №8лекция №8
лекция №8student_kai
 
ст лекция1
ст лекция1ст лекция1
ст лекция1student_kai
 
кин лекция 14
кин лекция 14кин лекция 14
кин лекция 14student_kai
 
лекция№28
лекция№28лекция№28
лекция№28student_kai
 
лекция №14
лекция №14лекция №14
лекция №14student_kai
 
лекция 15 управление финансами-ч2
лекция 15 управление финансами-ч2лекция 15 управление финансами-ч2
лекция 15 управление финансами-ч2student_kai
 

Viewers also liked (20)

лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3
 
лекция№7
лекция№7лекция№7
лекция№7
 
лекция№3
лекция№3лекция№3
лекция№3
 
камера сгорания
камера сгораниякамера сгорания
камера сгорания
 
лекция №8
лекция №8лекция №8
лекция №8
 
ст лекция1
ст лекция1ст лекция1
ст лекция1
 
п2 11 12
п2 11 12п2 11 12
п2 11 12
 
кин лекция 14
кин лекция 14кин лекция 14
кин лекция 14
 
п2 01 02
п2 01 02п2 01 02
п2 01 02
 
лекция 12
лекция 12лекция 12
лекция 12
 
G-Osnova
G-OsnovaG-Osnova
G-Osnova
 
Euph doc
Euph docEuph doc
Euph doc
 
лекция№28
лекция№28лекция№28
лекция№28
 
лекция №14
лекция №14лекция №14
лекция №14
 
п2 09
п2 09п2 09
п2 09
 
лекция 24
лекция 24лекция 24
лекция 24
 
лекция 15 управление финансами-ч2
лекция 15 управление финансами-ч2лекция 15 управление финансами-ч2
лекция 15 управление финансами-ч2
 
лек1
лек1лек1
лек1
 
п9
п9п9
п9
 
лек11
лек11лек11
лек11
 

Similar to лекция 3

Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовТранслируем.бел
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
 
01 линейные структуры данных
01 линейные структуры данных01 линейные структуры данных
01 линейные структуры данныхFedor Tsarev
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Mikhail Kurnosov
 
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10Mikhail Kurnosov
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.Igor Shkulipa
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksMikhail Kurnosov
 
Презентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатикаПрезентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатика2berkas
 
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиTatyanazaxarova
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Dmitri Soshnikov
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кодаAndrey Karpov
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода Pavel Tsukanov
 

Similar to лекция 3 (20)

Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
Progr labrab-4-2013-c++
Progr labrab-4-2013-c++Progr labrab-4-2013-c++
Progr labrab-4-2013-c++
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
 
01 линейные структуры данных
01 линейные структуры данных01 линейные структуры данных
01 линейные структуры данных
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)
 
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building Blocks
 
Презентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатикаПрезентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатика
 
Lektsia 9
Lektsia 9Lektsia 9
Lektsia 9
 
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибки
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кода
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
Erlang
ErlangErlang
Erlang
 

More from student_kai

презентация
презентацияпрезентация
презентацияstudent_kai
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
 
презентация курсовой работы
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работыstudent_kai
 
лекция№34
лекция№34лекция№34
лекция№34student_kai
 
лекция№32
лекция№32лекция№32
лекция№32student_kai
 
лекция№33
лекция№33лекция№33
лекция№33student_kai
 
лекция№31
лекция№31лекция№31
лекция№31student_kai
 
лекция№30
лекция№30лекция№30
лекция№30student_kai
 
лекция№29
лекция№29лекция№29
лекция№29student_kai
 
лекция№27
лекция№27лекция№27
лекция№27student_kai
 
лекция№26
лекция№26лекция№26
лекция№26student_kai
 
лекция№25
лекция№25лекция№25
лекция№25student_kai
 
лекция№25
лекция№25лекция№25
лекция№25student_kai
 
лекция№24
лекция№24лекция№24
лекция№24student_kai
 
лекция№23
лекция№23лекция№23
лекция№23student_kai
 
лекция№22
лекция№22лекция№22
лекция№22student_kai
 
лекция№21
лекция№21лекция№21
лекция№21student_kai
 
лекция№20
лекция№20лекция№20
лекция№20student_kai
 
лекция№19
лекция№19лекция№19
лекция№19student_kai
 
лекция№18
лекция№18лекция№18
лекция№18student_kai
 

More from student_kai (20)

презентация
презентацияпрезентация
презентация
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
 
презентация курсовой работы
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работы
 
лекция№34
лекция№34лекция№34
лекция№34
 
лекция№32
лекция№32лекция№32
лекция№32
 
лекция№33
лекция№33лекция№33
лекция№33
 
лекция№31
лекция№31лекция№31
лекция№31
 
лекция№30
лекция№30лекция№30
лекция№30
 
лекция№29
лекция№29лекция№29
лекция№29
 
лекция№27
лекция№27лекция№27
лекция№27
 
лекция№26
лекция№26лекция№26
лекция№26
 
лекция№25
лекция№25лекция№25
лекция№25
 
лекция№25
лекция№25лекция№25
лекция№25
 
лекция№24
лекция№24лекция№24
лекция№24
 
лекция№23
лекция№23лекция№23
лекция№23
 
лекция№22
лекция№22лекция№22
лекция№22
 
лекция№21
лекция№21лекция№21
лекция№21
 
лекция№20
лекция№20лекция№20
лекция№20
 
лекция№19
лекция№19лекция№19
лекция№19
 
лекция№18
лекция№18лекция№18
лекция№18
 

лекция 3