1)
var max, min, i, n : integer;
a : array [1..255] of integer;
BEGIN
// ввод массива
read(n);
for i := 1 to n do
read(a[i]);
// то, что в блок-схеме
max := a[1]; min := a[1];
for i := 2 to n do begin
if a[i] < min then
min := a[i]
else if a[i] > max then
max := a[i];
end;
write(min, ' ', max);
END.
2) Если k - это любое число >= 1, то значения элементов массива сдвинутся на 1 влево. К примеру, если k = 1, то a[1] = 12, a[2] = 5, a[3] = 8 и так далее
Это у нас нормальная коньюктивная форма
Видно что истино выражение может быть только в случае 10001, а все остальные ложны
всего случаев 2*2*2*2*2=32
32-1 = 31
#include<iostream>
#include<iomanip>
using namespace std;
int **create(int n, int m)
{
int k = 0; int **arr = new int*[n];
for (int i = 0; i < n; i++)
{ arr[i] = new int[m];
} for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (arr[i][0])
{
arr[i][0] = i;
}
if (arr[i][1])
{
arr[i][1] = i * i;
}
if(arr[i][2])
{
arr[i][2] = pow(i, 3);
}
}
} return arr;
}
void print(int **arr, int n, int m)
{
for (int i = 1; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << setw(5) << arr[i][j] << "\t"; } cout << endl;
}
}
int main()
{
setlocale(LC_ALL, "ru");
int n, m = 3;
cout << "Введите число n = "; cin >> n;
int**arr = create(n,m);
cout << endl;
print(arr, n, m);
cout << endl;
system("PAUSE");
return 0;
}
Грубо говоря для Настройки всех компонентов железа(процессор,видео карта и и.д.)
Var
i,j,n:integer;
a:array[1..1000] of boolean;
begin
Write('Введите верхнюю границу чисел (до 1000): ');
Read(n);
for i:=1 to n do a[i]:=True;
i:=2;
while sqr(i)<=n do begin
j:=sqr(i);
if a[i] then
while j<=n do begin a[j]:=False; j:=j+i end;
Inc(i)
end;
for i:=1 to n do
if a[i] then Write(i,' ')
end.
<em><u>Тестовое решение:</u></em>
Введите верхнюю границу чисел (до 1000): 100
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97