- •Операторы ввода-вывода
- •Жизненный цикл программы
- •Способы описания алгоритмов
- •Базовые структуры
- •9______________
- •Типы данных
- •Операторы цикла
- •Указатели
- •Int *X;
- •Одномерные массивы
- •Обработка одномерных массивов
- •Описание двухмерного массива
- •Обработка матриц
- •Функции
- •Общий вид описания функции
- •Обращение к функции
- •Механизм замены параметров
- •Параметры-массивы в функциях
- •Работа с текстовыми файлами
- •Обработка бинарных файлов
Жизненный цикл программы
В процессе подготовки и решения на ЭВМ научно - инженерных задач можно выделить следующие этапы:
содержательная постановка задачи;
математическая постановка (формализация) задачи;
выбор и обоснование метода решения;
алгоритмизация вычислительного процесса;
составление программы;
отладка программы;
решение задачи на ЭВМ и анализ результатов.
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))
Идентификаторы пользователя -для обозначения процедур, переменных и констант.
Правила:
не содержит пробелов
Состоит из букв, цифр и символов подчеркивания, но начинается с буквы
17_____________
Подпрограмма — это часть всей программы, оформленная особым образом. Как правило, в виде подпрограммы записывается какая-то логически завершённая часть программы. Активное использование подпрограмм при разработке программного обеспечения составляет основу модульного программирования.
18_______________
Выражение-задает порядок выполнения действий над элементами данных и состоит из операндов,круглых скобок и знаков операций
Операции-определяют действия,выполняемые над данными:
*, /, %
+,-
Тип арифметического выражения определяется типом входящих в него операндов
Операция сравнения: >, <, >=, <=, !=, ==
Логические операции: !, &&, ||
19______________