- •1.Среда разработки. Компиляция программы. Запуск программы.
- •2. Форматированный ввод/вывод в Си.
- •3. Простые типы данных в Си.
- •4. Операторы, арифметические, алгебраические и логические выражения.
- •5. Программа линейной структуры. Пример.
- •6. Программа разветвляющейся структуры. Структура if. Пример
- •7. Программа разветвляющейся структуры. Оператор выбора. Инструкция switch. Пример.
- •8. Циклы. Оператор цикла for. Пример.
- •9. Циклы. Оператор цикла с предусловием while. Пример.
- •10. Циклы. Оператор цикла с постусловием do…while. Пример.
- •11.Вычисление простой и сложной суммы. Пример.
- •12. Обработка целых чисел. Операторы % и /. Пример.
- •13. Одномерные массивы. Ввод/вывод (наглядный, ненаглядный, случайными числами). Пример.
- •14. Линейный поиск в одномерном массиве. Пример.
- •15. Бинарный поиск в одномерном массиве. Пример.
- •16. Cортировка. Метод пузырька. Пример.
- •17. Сортировка. Метод выбора. Пример.
9. Циклы. Оператор цикла с предусловием while. Пример.
Цикл while с предусловием позволяет выполнить одну и ту же последовательность действий пока проверяемое условие истинно. При этом условие записывается до тела цикла и проверяется до начала выполнения тела цикла. При выполнении цикла while сначала проверяется условие. Если оно ложно, то цикл не выполняется и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.
Формат оператора:
while (<условие>)
{
<операторы>;
}
Пример:
int i=1,i2;
while (i<=10)
{ i2=i*i;
Printf(“%d\n”,i2);
++i;
}
10. Циклы. Оператор цикла с постусловием do…while. Пример.
Цикл "пока" с постусловием отличается от цикла с предусловием тем, что сначала выполняется блок цикла, а потом проверяется условие. Если условие истинно, то цикл будет выполнен еще раз, и так до тех пор, пока условие будет истинно. Синтаксис цикла с постусловием такой (обратите внимание на обязательную точку с запятой после условия):
do
{
<операторы>;
}
while (<условие>);
Поскольку условие проверяется после выполнения тела цикла, то блок цикла с постусловием всегда будет выполнен хотя бы один раз, независимо от истинности условия. Это может привести к ошибкам, поэтому использовать цикл while с постусловием следует только тогда, когда это действительно упрощает алгоритм.
Пример:
int i,i2;
scanf(“%d”,&i);
do
{ i2=i*i;
Printf(“%d\n”,i2);
++i;
} while (i<=10);
11.Вычисление простой и сложной суммы. Пример.
S=a1+a2+aN можно записать в виде E(i=1..N)ai
Пример:
Ai=1/((2i-1)*2i)
i=1,2,..,50;
float a,s=0;1
for(int i=1;i<=50;i++)
{ a=1/((2*i-1)*2*i);
s+=a; }
printf(“s=%5.2f”,s);
Int i,n;
Float x,a,s:real;
Printf(“x n=”);
Scanf(“%f %f”,&x,&n);
A=1;s=1;
For(i=2;i<=n;i++)
{a=a*x*x/(i-1); s+=a;}
Printf(“s=%.5f”,s);
Факториал:
Внутри цикла выполняется накапливание. Например факториал 10:
fA=1;
for(int A=1;A<=10;A++)
fA=fA*A;
Степень:
Внутри цикла число умножается само на себя столько раз, сколько необходимо. Например пять в степени 15:
X=5; sX=1
for(int i=1;i<=15;i++)
sX=sX*X;
12. Обработка целых чисел. Операторы % и /. Пример.
В Си при целых числах функция «/» выполняет деление без остатка.
А «%» - остаток от деления.
Пример:
19/3=6
15/10=1
256%10=6
13%2=1
13. Одномерные массивы. Ввод/вывод (наглядный, ненаглядный, случайными числами). Пример.
Общий формат описания:
<тип> <имя>[<количество элементов>];
Массив – упорядоченный набор однотипных значений – компонент массива. Тип компонент называется базовым типом массива. В квадратных скобках задается количество элементов массива (размер). Элементы массива нумеруются с нуля.
Пример:
Int a[10], b[3]={1, 2, 3}, c[]; //размерность – не обязательный параметр.
Ввод/вывод одномерного массива (наглядный ввод):
for (int i=1; i<=n; i++)
{
printf(“a[%d]=”,i);
scanf(“%d”,&a[i]);
}
for (int i=1; i<=n; i++) printf(“a[%d]=%d\n”,i,a[i]);
Ввод/вывод одномерного массива (ненаглядный ввод):
for (int i=1; i<=n; i++) scanf(“%d”,&a[i]);
for (int i=1; i<=n; i++) printf(“%d “,a[i]);
Ввод одномерно массива (случайными числами):
srand(time(0));
for (int i=1; i<=n; i++)
{
a[i]=rand()%100-50; //диапазон от 49 до -50
a[i]=rand()/(float)32767 * 20 – 10; //от -10.0 до 9.0
}
Пример:
#include <stdio.h>
void main()
{
Const n=10;
int i,s=0, a[n+1];
for(i=1;i<=n;i++)
{ printf(“a%d=”,i); scanf(“%d”,a[i]); }
for(i=1;i<=n;i++)
s+=a[i];
printf(“s=%d”,s);
}
