Тут сказано использовать переменную типа integer, при этом надо помнить, что максимальный номер клетки, который можно задавать равен 31 (для номеров выше будет либо ошибка, либо неверный ответ).
Чтобы считать зерно вплоть до последней, 64-ой клетки шахматной доски- надо менять тип на uint64 либо BigInteger (но, они не везде доступны да и программу надо будет править).
Вариант с циклом loop (в нём задаётся число повторов)
Количество зёрен на клетке будет равно 2^(N-1)
Тут сказано использовать переменную типа integer, при этом надо помнить, что максимальный номер клетки, который можно задавать равен 31 (для номеров выше будет либо ошибка, либо неверный ответ).
Чтобы считать зерно вплоть до последней, 64-ой клетки шахматной доски- надо менять тип на uint64 либо BigInteger (но, они не везде доступны да и программу надо будет править).
Вариант с циклом loop (в нём задаётся число повторов)
function Zern2(a: integer): integer;
begin
Result := 1;
loop a-1 do
Result := Result * 2;
end;
begin
var n,m: integer;
write('Введите номер клетки: ');
Read(n);
m:=Zern2(n);
write('Зёрен на этой клетке: ',m,' шт.');
end.
Вариант с циклом while:
function Zern2(a: integer): integer;
begin
Result := 1;
while a>1 do
begin
Result := Result * 2;
a := a - 1;
end;
end;
begin
var n,m: integer;
write('Введите номер клетки: ');
Read(n);
m:=Zern2(n);
write('Зёрен на этой клетке: ',m,' шт.');
end.
Вариант без цикла:
function Zern2(a: integer): integer;
begin
Result := Trunc(power(2,a-1));
end;
begin
var n,m: integer;
write('Введите номер клетки: ');
Read(n);
m:=Zern2(n);
write('Зёрен на этой клетке: ',m,' шт.');
end.
#include <iostream>
#include <iomanip>
#include <stdio.h>
using namespace std;
//функция вывода массива в консоль
void printArray (int arr[][4], int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(5) << arr[i][j];
}
cout << endl;
} cout << endl;
}
//функция замены всех отрицательных элементов нулями
void taskOne (int arr[][4], int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] < 0) arr[i][j] = 0;
}
}
}
//функция нахождения суммы парных элементов
void taskTwo (int arr[][4], int n) {
int sum = 0;
cout << "Сумма парных чисел (";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] % 2 == 0 && arr[i][j] != 0) {
if(sum!=0) cout << ", "; //для красоты вывода)
cout << arr[i][j];
sum = sum + arr[i][j];
}
}
}
cout << ") = " << sum << endl << endl;
}
//функция нахождения среднего арифметическое мин и макс
void taskThree (int arr[][4], int n) {
int max = arr[0][0];
int min = arr[0][0];
for (int i = 0; i < n; i++) {
for (int j = 1; j < n; j++) {
// Понятное дело что минимальное число в массиве 0, но может имеется
// ввиду минимальное кроме 0. Если нет то проверку на ноль
// можно убрать arr[i][j] != 0
if (arr[i][j] != 0 && arr[i][j] < min) min = arr[i][j];
if (arr[i][j] > max) max = arr[i][j];
}
}
float result = float(max+min)/(n*n);
cout << "max = " << max << ", min = " << min <<endl;
cout << "Среднее арифметическое = " << result << endl <<endl;
}
int main() {
const int n = 4; //размер массива
int arr[n][n]; //объявляем двумерный массив размером 4 на 4
// Многомерный массив заполняется значениями с вложенных циклов.
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = rand() % 81 + (-40); // генерируем случайное число от -40 до 40
// rand() % N; возвращает число от 0 до N-1
// Если сгенерируется число 80 то отнимая 40 получим нужный максимум
// а если 0 - то -40, тоесть нужный нам минимум
}
}
// Выводим массив в консоль.
cout << "Сгенерированный массив 4 на 4" << endl << endl;
printArray(arr, n);
// №1 - Заменяем все отрицательные элементы нулями.
cout << "Задание №1" << endl << endl;
taskOne(arr, n);
printArray(arr, n);
// №2 - Заменяем все отрицательные элементы нулями.
cout << "Задание №2" << endl << endl;
taskTwo(arr, n);
// №3 - Заменяем все отрицательные элементы нулями.
cout << "Задание №3" << endl << endl;
taskThree(arr, n);
return 0;
}
На скриншоте вывод программы