- •1.Среда разработки. Компиляция программы. Запуск программы.
- •2. Форматированный ввод/вывод в Си.
- •3. Простые типы данных в Си.
- •4. Операторы, арифметические, алгебраические и логические выражения.
- •5. Программа линейной структуры. Пример.
- •6. Программа разветвляющейся структуры. Структура if. Пример
- •7. Программа разветвляющейся структуры. Оператор выбора. Инструкция switch. Пример.
- •8. Циклы. Оператор цикла for. Пример.
- •9. Циклы. Оператор цикла с предусловием while. Пример.
- •10. Циклы. Оператор цикла с постусловием do…while. Пример.
- •11.Вычисление простой и сложной суммы. Пример.
- •12. Обработка целых чисел. Операторы % и /. Пример.
- •13. Одномерные массивы. Ввод/вывод (наглядный, ненаглядный, случайными числами). Пример.
- •14. Линейный поиск в одномерном массиве. Пример.
- •15. Бинарный поиск в одномерном массиве. Пример.
- •16. Cортировка. Метод пузырька. Пример.
- •17. Сортировка. Метод выбора. Пример.
14. Линейный поиск в одномерном массиве. Пример.
Линейный поиск (последовательный, полный поиск)
Линейный поиск осуществляется в несортированных массивах, при этом количество операций пропорционально числу элементов. Если n элементов, то количество операций имеет порядок n (O(n)).
Пример: найти максимальный элемент массива
#include <stdio.h>
void main()
{
Const n=10;
int i,k=1, a[n+1];
for(i=1;i<=n;i++)
{ printf(“a%d=”,i); scanf(“%d”,a[i]); }
for(i=1;i<=n;i++)
if(a[k]<a[i]) k=i;
printf(“max a[%d]=%d\n”,k,a[k]);
}
15. Бинарный поиск в одномерном массиве. Пример.
Дихтомия, метод деления пополам, метод половинного деления.
Данный метод используется только для сортированных и с разными элементами массивов.
Пример: найти элемент равный р
#include <stdio.h>
void main()
{
const n=10;
int mid, p, x[n+1], a=1, b=n;
for(int i=1;i<=n;i++)
{ printf(“a%d=”,i); scanf(“%d”,a[i]); }
printf (“p=”); scanf(“%d”,&p);
while (a<=b)
{
mid=(a+b)/2;
if (x[mid]==p) break;
if (x[mid]<p) a=mid+1; else b=mid;
}
if (x[mid] ==p)
printf(“p=a[%d]=%d\n”,mid,a[mid]);
else printf(“нет такого элемента”);
}
16. Cортировка. Метод пузырька. Пример.
Сортировка – процесс перестановки объектов заданной совокупности в определенном порядке (возрастание, убывание).
В методе Идея состоит в последовательном перемещении попарных перестановок наибольшего значения сначала на место N-го элемента, затем (N-1)-го и т.д.
Пример:
#include <stdio.h>
void main()
{
const n=20;
int i, k, a[n+1], R;
for(i=1;i<=n;i++)
{ printf(“a%d=”,i); scanf(“%d”,a[i]); }
for(k=1;k<=n-1; k++)
for(i=1;i<=n-k; i++)
{
if(a[i]>a[i+1])
R=a[i];
a[i]=a[i+1];
a[i+1]=R;
}
for(i=1;i<=n;i++)
printf(“a%d=%d”, i, a[i]);
}
17. Сортировка. Метод выбора. Пример.
Сортировка – процесс перестановки объектов заданной совокупности в определенном порядке (возрастание, убывание).
Для сортировки методом выбора, в массиве, начиная с первого элемента до последнего, выбирается наибольший элемент и ставится на последнее место, а последний – на место наибольшего.
Затем ищем наибольший элемент до предпоследнего элемента, эта процедура повторяется.
Пример:
#include <stdio.h>
void main()
{
Const n=20;
int i, k, m=1, a[n+1], R;
for(i=1;i<=n;i++)
{ printf(“a%d=”,i); scanf(“%d”,a[i]); }
for(k=1;k<=n-1; k++)
for(i=2;i<=n+1-k; i++)
{
if(a[i]>a[m]) m=i
R=a[n+1-k];
a[n+1-k]=a[m];
a[m]=R;
}
for(i=1;i<=n;i++)
printf(“a%d=%d”, i, a[i]);
}
