Слайд 1Основы программирования
ФИСТ 1 курс
Власенко
Олег
Федосович
Лекция 9.3
FOR. BREAK.
Слайд 3Цикл с предусловием while
while (Условие) {
Действие;
}
Слайд 4Цикл for
int j = i; // инициализация счетчика цикла
while (j
изменение счетчика цикла
}
Слайд 5Цикл for (2)
for (int j = i; j
j++) {
printf(“%d “, j);
}
Слайд 6Цикл for – рисуем блок-схему!
f = 1;
for (i = 1;
i
Слайд 7Цикл for – рисуем блок-схему и трассируем!
f = 1;
for (i
= 1; i
* i;
}
f = 1;
i = 1;
while (i <= n) {
f = f * i;
i++;
}
Слайд 8Какие варианты являются синтаксически некорректными?
for (;;) {printf("Hi");}
for (i=0;;) {printf("Hi");}
for (;i
{printf("Hi");}
for (;;i++) {printf("Hi");}
for (i=0;;i++) {printf("Hi");}
for (;i
{printf("Hi");}
for (i=0,j=10;i
for (i = 0, j = 10, printf("Ups"); i < j; i++, j--, printf("Hi"));
for (;;);
Слайд 9Вывод элементов 2D массива (WHILE)
int i = 0; // счетчик
по строкам
while (i < 2) {
int j = 0; //
счетчик по столбцам
while (j < 3) {
printf("%5d ", arr1[i][j]);
j++;
}
printf("\n");
i++;
}
Слайд 10Вывод элементов 2D массива (FOR)
for (int i = 0; i
< 2; i++) {
for (int j = 0; j
3; j++) {
printf("%5d ", arr1[i][j]);
}
printf("\n");
}
Слайд 11Ввод элементов 2D массива (WHILE)
#define _CRT_SECURE_NO_WARNINGS
…
int i = 0;
while (i
< 2) {
int j = 0;
while (j < 3) {
scanf("%d",
&arr1[i][j]);
j++;
}
i++;
}
Слайд 12Ввод элементов 2D массива (FOR)
#define _CRT_SECURE_NO_WARNINGS
…
for (int i = 0;
i < 2; i++) {
for (int j = 0; j
< 3; j++) {
scanf("%d", &arr1[i][j]);
}
}
Слайд 13Подсчет суммы элементов массива (WHILE)
int s = 0;
i =
0;
while (i < 2) {
int j = 0;
while (j
3) {
s += arr1[i][j];
j++;
}
i++;
}
Слайд 14Подсчет суммы элементов массива (FOR)
int s = 0;
for (int
i = 0; i < 2; i++) {
for (int j
= 0; j < 3; j++) {
s += arr1[i][j];
}
}
Слайд 15Увеличение всех нечетных элементов в 10 раз (WHILE)
i =
0;
while (i < 2) {
int j = 0;
while (j
3) {
if (arr1[i][j] % 2 == 1) {
arr1[i][j] *= 10;
}
j++;
}
i++;
}
Слайд 16Увеличение всех нечетных элементов в 10 раз (FOR)
for (int
i = 0; i < 2; i++) {
for (int j
= 0; j < 3; j++) {
if (arr1[i][j] % 2 == 1) {
arr1[i][j] *= 10;
}
}
}
Слайд 17Поиск минимального элемента (WHILE)
int min = a[0][0];
int iMin = 0;
int
jMin = 0;
i = 0;
while (i < 2) {
j =
0;
while (j < 3) {
if (a[i][j] < min) {
min = a[i][j];
iMin = i;
jMin = j;
}
j++;
}
i++;
}
Слайд 18Поиск минимального элемента (FOR)
int min = a[0][0];
int iMin = 0;
int
jMin = 0;
for (int i = 0; i < 2;
i++) {
for (int j = 0; j < 3; j++) {
if (a[i][j] < min) {
min = a[i][j];
iMin = i;
jMin = j;
}
}
}
Слайд 20#include
void main() {
int i = 1;
int a = 1,
b = 2, c = 3, d = 4, e
= 5, f = 6;
do {
printf("%d ", i);
if (a < b) {
for (b = d; b < f; b++) {
a = c;
while (a < f) {
d += a;
a++;
}
c = a;
}
e += d;
}
Слайд 21 else {
for (f = e; f > a; f--) {
if
(c < a) {
c = a;
d++;
break;
}
f += a;
}
}
i++;
} while (i
<= 5);
printf("%d %d %d", d, e, f);
}
Слайд 22Задача (c BREAK)
Продублировать строки, в которых есть отрицательные элементы.
Слайд 23Задача (BREAK)
for (i = n - 1; i >= 0;
i--) {
int flag = 0;
for (j = 0; j
m; j++)
if (a[i][j] < 0) {
flag = 1;
break;
}
if (flag) {
// вставка i-ой строки дублированием
for (int i2 = n; i2 > i; i2--)
for (j = 0; j < m; j++)
a[i2][j] = a[i2 - 1][j];
n++;
}
}
Слайд 24Домашнее задание
Тренировки ради переделайте 5-6 программ из while в for.