Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гшеш8.docx
Скачиваний:
10
Добавлен:
11.04.2015
Размер:
232.38 Кб
Скачать

Жизненный цикл программы

В процессе подготовки и решения на ЭВМ научно - инженерных задач можно выделить следующие этапы:

  • содержательная постановка задачи;

  • математическая постановка (формализация) задачи;

  • выбор и обоснование метода решения;

  • алгоритмизация вычислительного процесса;

  • составление программы;

  • отладка программы;

  • решение задачи на ЭВМ и анализ результатов.

6________________________________

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

Алгоритмы:

  • Вычислительные

  • Информационные

  • Управляющие

Основные свойства:

  • Дискретность

  • результативностью или конечностью алгоритма;

  • определенностью;

  • массовостью.

Дискретность -поочередное выполнение команд алгоритма за конечное число шагов приводящее к решению задачи.

Результативность- возможность получения результата после выполнения конечного количества операций.

Определенность -совпадение получаемых результатов независимо от пользователя и применяемых технических средств.

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

7___________________

Способы описания алгоритмов

  • словесный;

  • Графический;

  • Программный

словесный - записывается в виде текста с формулами по пунктам, определяющим последовательность действий.

Графический- описании алгоритм изображается блоками

Программный- запись на языке программирования

8______________________

Базовые структуры

Базовые структуры алгоритмов —определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.

К основным структурам относятся следующие:

  • линейные;

  • ветвящиеся;

  • циклические.

Линейными -алгоритмы, в которых действия осуществляются последовательно друг за другом

Разветвляющимся -алгоритм, в котором действие выполняется по одной из возможных ветвей решения задачи, в зависимости от выполнения условий

Циклическим- алгоритм, в котором тело цикла выполняется многократно.

Существуют три типа циклов:

  • Цикл с предусловием

  • Цикл с постусловием

  • Цикл с параметром

9______________

10________________

11______________

Алгоритм последовательного поиска (АПП) последовательно просматривает по одному элементу списка, начиная с первого, до тех пор, пока не найдет целевой элемент. Предполагается, что список не отсортирован.

12_______________

Бинарный поиск осуществляется на отсортированном списке. Идея в том, что список делится пополам, берется средний эл-т и сравнивается с целевым эл-том. При сравнении возможен один из трех результатов: значения равны, целевое значение меньше элемента списка, либо целевое значение больше элемента списка. В первом случае поиск завершен. В остальных двух случаях мы можем отбросить половину списка. Когда целевое значение меньше среднего элемента, мы знаем, что если оно имеется в списке, то находится перед этим средним элементом. Когда же оно больше среднего элемента, мы знаем, что если оно имеется в списке, то находится после этого среднего элемента. Этого достаточно, чтобы мы могли одним сравнением отбросить половину списка. При повторении этой процедуры мы сможем отбросить половину оставшейся части списка

13_____________________

Метод пузырька: Сортировка пузырьком – простейший алгоритм сортировки. К плюсам сортировки пузырьком относится простота реализации алгоритма.

Алгоритм сортировки пузырьком сводится к повторению проходов по элементам сортируемого массива. Проход по элементам массива выполняет внутренний цикл. За каждый проход сравниваются два соседних элемента, и если порядок неверный элементы меняются местами. Внешний цикл будет работать до тех пор, пока массив не будет отсортирован. Когда при очередном проходе по элементам массива не будет совершено ни одной перестановки, то массив будет считаться отсортированным.

for (int i=n-1;i>0;i--)

{

for (int j=0;j<i;j++)

{

if(a[j]>a[j+1])

{

int p=a[j];

a[j]=a[j+1];

a[j+1]=p;

}

}

}

14___________

Это наиболее естественный алгоритм упорядочивания. При данной сортировке из массива выбирается элемент с наименьшим значением и обменивается с первым элементом. Затем из оставшихся n - 1 элементов снова выбирается элемент с наименьшим ключом и обменивается со вторым элементом, и т.д.

Шаги алгоритма:

1. находим минимальное значение в текущей части массива;

2. производим обмен этого значения со значением на первой не отсортированной позиции;

3. далее сортируем хвост массива, исключив из рассмотрения уже отсортированные элементы.

#include <iostream.h>

int main(){

const int n = 10;

int b[n];

int i;

for (i = 0; i<n; i++) cin » b[i];

for (i = 0; i<n-l; i++){

int imin = i;

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

if (b[j] < b[imin]) imin = j;

int a = b[i];

b[i] = b[imin];

b[imin] = a;}

for (i = 0; i<n; i++) cout « b[i] « ' ';

return 0;}

15______________

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

Сортируемый массив можно разделить на две части — отсортированная часть и неотсортированная. В начале сортировки первый элемент массива считается отсортированным, все остальные — не отсортированные. Начиная со второго элемента массива и заканчивая последним, алгоритм вставляет неотсортированный элемент массива в нужную позицию в отсортированной части массива. Таким образом, за один шаг сортировки отсортированная часть массива увеличивается на один элемент, а неотсортированная часть массива уменьшается на один элемент.

16_____________

Программы на языке C++ может использовать лишь символами, предусмотренными алфавитом этого языка.

  • Буквы латинского алфавита

  • Арабские цифры

  • Специальные символы

Слова в языке C++ делятся на:

    • Ключевые слова

    • Стандартные идентификаторы

    • Идентификаторы пользователя

Ключевые слова- частью языка, имеющие определенное написание и несущие определенный смысл.(IF, FOR, WHILE, DO, INT, FLOAT, CHAR)

Стандартные идентификаторы-для вызова стандартных функций, хранящихся в библиотеках.

(sin(x), exp(x), pow(x), abs(x), cos(x), tan(x), sqrt(x), log10(x))

Идентификаторы пользователя -для обозначения процедур, переменных и констант.

Правила:

  1. не содержит пробелов

  2. Состоит из букв, цифр и символов подчеркивания, но начинается с буквы

17_____________

Подпрограмма — это часть всей программы, оформленная особым образом. Как правило, в виде подпрограммы записывается какая-то логически завершённая часть программы. Активное использование подпрограмм при разработке программного обеспечения составляет основу модульного программирования.

18_______________

Выражение-задает порядок выполнения действий над элементами данных и состоит из операндов,круглых скобок и знаков операций

Операции-определяют действия,выполняемые над данными:

  • *, /, %

  • +,-

Тип арифметического выражения определяется типом входящих в него операндов

Операция сравнения: >, <, >=, <=, !=, ==

Логические операции: !, &&, ||

19______________