1) if выражение: инструкция_1
инструкция_2
...
инструкция_n
else:
инструкция_а
инструкция_b
...
инструкция_х
В каком случае используется данная конструкция?
Если необходимо предусмотреть алттернативный вариант выполнения программы / Для реализации выбора из нескольких альтернатив.
2) if выражение_1:
инструкции_(блок_1)
elif выражение_2:
инструкции_(блок_2)
elif выражение_3:
инструкции_(блок_3)
else:
инструкции_(блок_4)
В каком случае используется данная конструкция?
Для реализации выбора из нескольких альтернатив / Если необходимо предусмотреть алттернативный вариант выполнения программы
Да, верно.
(Пример с игровым диском, DVD-disc)
На игровом диске имеется два вида поверхностей с данными: поверхностный пластик, который закрывает диск снизу, и алюминиевое хранилище, являющееся отражающей частью. Если пластик слегка поцарапан, то считывание данных с алюминиевой части может затрудниться и будут возникать ошибки. В этой ситуации проблему можно решить, если заполнить царапины густым раствором вроде вазелина.
Если поцарапана алюминиевая поверхность, то починить диск невозможно. Это случается при глубоких царапинах. Глубокие круговые царапины невозможно устранить. Такую игру нужно вернуть или приобрести новую копию.#include <math.h>
void minmax(int x1[],int y1[])
{
int i, j, imax, jmax, imin, jmin;
int len=sizeof(x1);
float max = 0;
float min = 1000;
float r;
for ( i = 0; i < len-1; i ++ )
for ( j = i+1; j < len; j ++ )
{
r = sqrt((x1[i]-x1[j])*(x1[i]-x1[j])+(y1[i]-y1[j])*(y1[i]-y1[j]));
if (r>max) { max = r; imax = i; jmax = j;}
if (r<min) { min = r; imin = i; jmin = j;}
}
printf("max = %f точки: %d - %d\n", max, imax+1, jmax+1);
printf("min = %f точки: %d - %d\n", min, imin+1, jmin+1);
}
int main()
{
int n=5;
int x[n], y[n], i;
srand (time(NULL));
for ( i = 0; i < n; i ++ )
{
x[i] = rand() % 20 -10;
y[i] = rand() % 20 -10;
printf ("%4d, %4d ", x[i], y[i]);
printf("\n");
}
minmax(x,y);
return 0;
}
Пример:
-10, 4
-5, 2
-9, -1
7, 2
7, -3
max = 17.117243 точки: 1 - 4
min = 5.000000 точки: 2 - 3