Слайд 1
Управляющие операторы языка С.
Массивы
Лектор
Махметова А.М.
Слайд 2Вопросы:
Массив переменных
Управляющие операторы:
а. оператор Break
б. оператор Continue
в. оператор Goto
г. оператор
выбора Switch
Слайд 3 Массив – конечномерная последовательность данных одного типа.
Массив – объект
сложного типа.
Каждый элемент массива определяется именем массива и индексом
(целое число), по которому к элементу массива производится доступ.
В языке С элементы массивы нумеруется с нуля.
Слайд 4Описание массива:
В программе одномерный массив объявляется следующим образом:
[размер];
где, размер – количество элементов
одномерного массива.
int c[12];
int d[100], x[27];
Слайд 5Инициализация элементов массивы:
#include
main()
{
int A[10]= {32, 25, 78, 10, -3,
12, 0, 7, 14, 7};
int i;
for (i=0; i
A[i]);
return 0;
}
Слайд 6Двухмерные массивы
Двухмерные массивы состоят из строк и стобцов. Рассмотрим двухмерный
массив a[3][4] :
0 столбец
1 столбец
2 столбец
3 столбец
0 строка
1
строка
2 строка
Индекс столбца
Индекс строки
Имя массива
Слайд 7Пример:
int b[2][2] = { { 1, 2 }, { 3,
4 } };
int b[2][2] = { 1, 2, 3, 4
};
Слайд 8int a[3][5]={1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11}
int a[3][5]={{1, 2, 3},{4, 5, 6, 7, 8},{9, 10,
11}}
Слайд 9 Оператор Break
Оператор break используется когда нужно выйти из цикла
недожидаясь конца цикла.
Если оператор break используется
во вложенных циклах, то выход осуществляется во внешний цикл.
Слайд 10 Пример: Дан двухмерный массив A[3,3]. Нужно получить
одномерный массив B[3] по следующим правилам:
Если в строке имеется хотябы
один отрицательный элемент то B[i]=1, иначе B[i]=0.
Слайд 11 #include
#include
#define n 3
void main()
{
int i, j, a[n][n],
b[n];
clrscr();
for (i=0; i
j ++)
if (a[i][j]
iprintf("%d\n",b[i]);
}
Слайд 13Оператор Continue
Оператор continue когда в программе
нужно перейти на следующуюю итерацию цикла не выполняя тело цикла.
Слайд 14 Пример:
Дан одномерный
массив – A[6]. Нужно составить программу которая возводт в квадрат
отрицательные элементы массива.
Слайд 15#include
#include
#include
#define n 6
main()
{
int i, a[n];
clrscr();
for (i=0; i
i++)
scanf("%d", &a[i]);
continue;
else a[i]=pow(a[i], 2);
for (i=0; i
i++)
printf("%4d\n", a[i]);
}
Слайд 17Пример:
Вывести на экран числа делящиеся на 7 без остатка,
среди чисел от 1 до 100.
Слайд 18#include
#include
void main()
{
int x;
clrscr();
for (x=1;x
printf ("%8d \n",x); }
getch();
}
Слайд 19Оператор Goto
формат:
goto < метка >;
метка – номер оператора к которому
нужно прейти.
Слайд 20#include
main ()
{
int k; char
symbol;
c1: printf("\n Введите целое число и нажмите на Enter: ");
scanf("%i",&k);
if (k % 2 == 0)
printf(“четное.");
else
printf(“нечетное.");
printf("\n Хотите ввести еще одно число? Да - 'Y', Нет - 'N' :");
scanf("%s",&symbol);
if ((symbol=='Y')||(symbol=='y')) goto c1;
}
Слайд 21 Switch – оператор выбора
формат:
switch
типа>;
{
case метка1: операторы;
case метка2: операторы;
................
[default: операторы;]
}
Слайд 22 Мысалы:
#include
#include
#include
main()
{
char symbol; int
x, y, z;
clrscr();
scanf("%c", &symbol);
scanf("%d%d", &y, &z);
Слайд 23switch (symbol)
{
case '-' :
x=y-z; break;
case '+' :
x=y+z; break;
case '*': x=y*z; break;
case '/' : x=y/z; break;
default: printf ("ne opredelennaia
operaziaя\n");}
printf("%3d\n", x); return 0;
}
Слайд 24Случайные числа
int rand() – 0..RAND_MAX=32767.
int random(n) – выдает случайные
целые числа между 0 и n.
Для использование функции rand(), random(n)
необходимо подключить библиотеку .
Слайд 25Чтобы при каждом выполнений программы компьютер выдавал новые числа, необходимо
перед функцияим rand(), random() подключит генератор случайных чисел - randomize().
Слайд 26#include
#include
#include
void main()
{ int a[100]; int n;
printf (“\n
Enter the size of array:”,n);
scanf (“%i”,&n);
For (i=0; i
“,a[i]);}
getch(); }
Слайд 27Пример:
Дан одномерный массив состоящий из натуральных чисел.
Посчитать:
-арифметическую
среднюю элементов массива;
- сумму нечетных элементов;
- Сумму четных
элементов.
Слайд 28#include #include
void main() {
int i; float
a[10],s=0,g=0,t=0;
clrscr();
printf("\n ‚ Введите элементы массива a[i] =\n");
for(i=0; i
(i=0;i<10;i=i+2) g=g+a[i];
for (i=1;i<10;i=i+2) t=t+a[i];
printf("s=%4.2f\n",s/10); printf("g=%4.2f t=%4.2f\n",g,t);
getch(); }
Слайд 29Пример:
Дан массив состоящий из целых чисел. Определить макмимальный элемент
массива и его индекс, затем первый элемент поменять с максимальным
элементом.
Также определить количество положительных и отрицательных элементов массива.
Слайд 30#include
#include
main( ) {
int a[10]={-1,-20,4,100,56,-5,34,-45, 303,2}; int
i,index,max,kp,ko,zam;
clrscr();
printf("\n Исходный массив\n");
for (i=0; i
printf("%d ",a[i]); //вывод элементов
исходного массива
Слайд 31max=a[0]; kp=0; ko=0; zam=a[0];
for (i=1; imax)
{max=a[i]; index=i; }
a[index]=zam; a[0]=max;
for
(i=0;i<10;i++) {
if (a[i]<0) ko=ko+1; else kp=kp+1; }
printf("\n Результат:\n");
for (i=0; i<10; i++)
printf("%d ",a[i]);
printf("\n кол-во положительных эл-ов массива: %d \n",kp);
printf(" \n кол-во отрицательных эл-ов массива: %d,\
\n\n Нажмите на любую клавишу...",ko);
getch();
return(0); }