Відповідь:
Величина ( значення ) - одиниця даних , що заявлена своїм іменем ( ідентифікатором ) або його значенням ; об'єкт , яким пов'язується з деяка множини значень.
Пояснення:
Величини поділяють на змінні та постійні (константи). Величина, яка має одне й те саме значення в будь-які моменти часу, називається постійною, або константою. Величина, яка в різні моменти часу може набувати різних значень, називається змінною. Стандартні типи даних: INTEGER (цілий). ... REAL (дійсний). ... CHAR (символьний тип). ... BOOLEAN (булевий або логічний тип). Після заголовка процедури перед тілом процедури, яке обмежується службовими словами begin та end, розміщують розділ оголошення змінних, що розпочинається службовим словом var: var ім’я_змінної: тип_змінної; Константи бувають числовими та символьними; Присвоює змінній конкретне значення, заповнюючи комірку пам'яті, відведену для змінної, новим значенням, відночас знищуючи старе
Объяснение:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int m, n;
cin >> m >> n;
if (m <= 0 || n <= 0) return 0;
int** arr = new int* [m];
for (int i = 0; i < m; i++)
{
arr[i] = new int[n];
}
cout << endl;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
arr[i][j] = rand() % 11 - 5;
cout.width(3);
cout << arr[i][j];
}
cout << endl;
}
cout << endl;
int belowZero = 0;
for (int i = 0; i < m; i++)
{
int sum = 0;
for (int j = 0; j < n; j++)
{
sum += arr[i][j];
}
if (sum < 0) belowZero++;
}
cout << " Answer: " << belowZero << endl;
for (int i = 0; i < m; i++)
{
delete[] arr[i];
}
delete[] arr;
}
// Внимание! Если программа не работает, обновите версию!
begin
ReadlnString.MatchValues('\d+').Select(w->(w,w.Distinct
.OrderBy(c->c).JoinIntoString(''))).GroupBy(t->t[1])
.Where(x->x.Count>1).Select(x->x.UnZipTuple.Item1.
Select(x->x.ToInteger).Average).Println;
end.
Пример
это 3242 такая 181 вот 346 странная 432 1118 строка
1837 649.5
Как все это работает (функциональное программирование)
ReadlnString - считываем строку с клавиатуры
.MatchValues('\d+') - выбираем подстроки символов, состоящие из цифр
.Select(w->(w,w.Distinct.OrderBy(c->c).JoinIntoString(''))) - эта сложная конструкция сначала в каждой подстроке оставляет только разные цифры и сортирует их в порядке возрастания, затем соединяет эти цифры в строку и объединяет исходную подстроку с полученной строкой в так называемый кортеж. Полученный кортеж для каждой исходной подстроки содержит два элемента: саму подстроку и строку из уникальных цифр этой подстроки, расположенных по возрастанию.
.GroupBy(t->t[1]) - группирует кортежи в более крупные блоки так, чтобы каждый блок содержал кортежи, у которых второй элемент одинаков.
.Where(x->x.Count>1) - оставляет только те блоки, в которых больше одного кортежа, ведь нам не нужны "числа-одиночки"
.Select(x->x.UnZipTuple.Item1 - техническая операция, превращающая в каждом блоке кортеж в последовательность подстрок, представляющих исходные числа
.Select(x->x.ToInteger) - каждая такая последовательность подстрок превращается в последовательность целых чисел
.Average) - находятся средние арифметические каждой последовательности
.Println - вывод всех найденных значений.
Все это не так уж просто, но и задание далеко не тривиальное. Если записать его средствами "традиционного паскаля" - такого примерно, как Free Pascal, код будет огромным...