Решите информатику:
1)
Var a, b, c: integer;
Begin
a:=63;
b:=237;
c:= 35;
While (a+c) Begin
a:=a+6;
c:=c+4;
b:=b-10;
End.
Определи чему равна переменная b.
2)
Var x, y: integer;
Begin
x:=0;
y:=17;
While x Begin
x:=(x+1)*2;
End.
Определи чему равна переменная x.
#include<conio.h>
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
#define N 25
#define K 3
int prime(int num)
{ int i;
for(i=2;i<=num/2;i++)
if(num%i==0) break;
if(i==num/2+1 || num==1) return num;
else return 0;
}
int maxPos(int A[])
{ int i,max,mPos;
max=0;
for(i=0;i<N;i++)
if(A[i]>max)
{ max=A[i];
mPos=i;
}
return mPos;
}
int main()
{ int i,j,X[N],Y[N],pos;
srand(time(NULL));
for(i=0;i<N;i++)
{ X[i]=rand()%30+1;
Y[i]=prime(X[i]);
}
printf("Original array\n");
for(i=0;i<N;i++)
printf("%3d",X[i]);
printf("\nArray-masque of prime numbers\n");
for(i=0;i<N;i++)
printf("%3d",Y[i]);
printf("\n\n");
for(j=0;j<K;j++)
{ pos=maxPos(Y);
printf("%3d in position %3d targeted\n",X[pos],pos);
Y[pos]=-1;
X[pos]=-1;
}
j=0;
for(i=0;i<N;i++)
if(X[i]!=-1)
{ Y[j]=X[i];
j++;
}
printf("\nResult:\n");
for(i=0;i<j;i++)
printf("%3d",Y[i]);
getchar();
return 0;
}
Объяснение:
Заметим, что каждую итерацию цикла, х увеличивается на 2 при начальном значении 0. Чтобы его значение стало равно 10, потребуется 5 итераций цикла.
Переменная р каждый раз увеличивается на а, пока не станет больше либо равна 203. Тогда произойдёт выход из цикла, поскольку условие станет False. Мы знаем, что в цикле 5 итераций. Следовательно, на 4-ой итерации условие всё ещё было True, а на 5-ой стало False, тогда:
4 · a < 203.
5 · a ≥ 203.
a ≤ 50.75.
a ≥ 40.6.
Наибольшее подходящее число: 50.
ответ: 50