Как исповедующий подход на атомарное разбиение кода на функции/методы/классы, предпочитаю видеть код, в котором каждая операция выполняется в своей функции.
Это упрощает повторное использование кода, да и мыслить такой код проще, чем когда тебе в одной функции нужно отслеживать несколько состояний для их синхронизации.
В данном задании действие этого подхода видно слабо.
P.S. srand(time(nulptr)) и rand() - "плохой" получения случайных чисел, так как время находится под контролем пользователя и он может выставлять время специально. Но "хороший" реализовывать здесь смысла нет.
===========================
Если решение удовлетворило, не забудь отметить его как "Лучшее".
===========================
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>
int rand_range(int min, int max) {
return std::rand() % (max - min + 1) + min;
}
int* random_sequence(int N, int min, int max) {
int *arr = new int[N];
for(auto i = 0; i < N; ++i) {
arr[i] = rand_range(min, max);
}
return arr;
}
template<typename T>
void print_sequence(const T * arr, size_t size) {
for(auto i = 0; i < size; ++i) {
std:: cout << arr[i] << " ";
}
}
long calculate_production(const int *arr, size_t size) {
long accumulator = 1;
for(auto i = 0; i < size; ++i) {
if (i % 2 == 0) continue;
accumulator *= arr[i];
}
return accumulator;
}
int main() {
const int min_random = -19, max_random = 26;
int N;
std::cout << "How many number should we generate? N = ";
std::cin >> N;
std::srand(std::time(nullptr));
int *arr = random_sequence(N, min_random, max_random);
1)program Mas;uses crt; const nmax=100; var x:array[1..nmax]of Integer; i,n,b,bcol,proz:Integer; begin proz:=1; repeat begin ClrScr; Write('Введите размер одномерного массива(n),n='); Read(n); end; until n<=nmax; Writeln('Введите значения элементов массива:'); for i:=1 to n do Read(x[i]); Writeln('Введенный массив:'); for i:=1 to n do Write(x[i],' '); Writeln; Write('Введите число B:'); Read(b); for i:=1 to n do if x[i]<b then inc(bcol); Writeln('Количество элементов меньших B:',bcol); for i:=1 to n do proz:=proz*x[i]; Writeln('Произведение всех элементов массива:',proz); Readln; end. 2)program p1;var x:array[1..100] of integer; max,i,n:integer; begin write('Введите количество элементов='); readln(n); writeln('Исходный массив'); randomize; for i:=1 to n do begin x[i]:=random(101)-50; write(x[i]:3); if (x[i]>=max) then max:=x[i]; end; writeln; writeln('Новый массив'); for i:=1 to n do begin if (abs(x[i])=max) and (x[i]<>max) then x[i]:=1; if (x[i]<>max) and (abs(x[i])<>max) then x[i]:=0; write(x[i]:3); end; readln end. 3)var a: array[1..15] of integer; i: integer; av: integer; begin randomize; for i := 1 to 15 do a[i] := random(40) + 10; writeln('Исходный массив: '); for i := 1 to 15 do write(a[i], ' '); writeln; av := 1; for i := 1 to 15 do if a[i] mod 7 = 0 then av := av * a[i]; if av = 1 then writeln('Массив не содержит элементов , которые кратны 7!') else writeln('Произведение равно: ', av); end. 4)uses crt;const n=31; var a:array[1..n] of integer; i:byte; max:integer; sr:real; begin clrscr; writeln('Vvedite temperaturu po dnyam:'); sr:=0; for i:=1 to n do begin write(i,' maya: '); readln(a[i]); sr:=sr+a[i]/31; end; clrscr; writeln('Massiv temperatur:'); max:=a[1]; for i:=1 to n do begin write(a[i],' '); if a[i]>max then max:=a[i]; end; writeln; writeln('Samye teplye dni s temperaturoj ',max,' grad'); for i:=1 to n do if a[i]=max then writeln(i,' maya'); writeln; write('Srednya temperatura=',sr:0:1,' grad'); readln end. 5)program PROG5_2;const N = 10; var a : array [1..N] of integer; i : integer; imin, imax : integer; d, c, s : integer; begin {Заполнение массива а случайными числами} randomize; for i:=1 to N do a[i]:=random(100); {Вывод массива а на экран} writeln('Исходный массив:'); for i:=1 to N do write(a[i]:6); writeln; {Нахождение индексов наибольшего и наименьшего эемаентов массива} imin:=1; {Индекс наименьшего элемента} imax:=1; {Индекс наибольшего элемента} for i:=2 to N do begin if a[i] < a[imin] then imin :=i; if a[i] > a[imax] then imax := i; end; {Вывод ответа} writeln('Наименьший элемент a[',imin,']=',a[imin]); writeln('Наибольший элемент a[',imax,']=',a[imax]); {Подсчет количества и суммы чисел между минимальным и максимальным значениями} c:=0; {Количество} s:=0; {Сумма} for i :=imin to imax do
Как исповедующий подход на атомарное разбиение кода на функции/методы/классы, предпочитаю видеть код, в котором каждая операция выполняется в своей функции.
Это упрощает повторное использование кода, да и мыслить такой код проще, чем когда тебе в одной функции нужно отслеживать несколько состояний для их синхронизации.
В данном задании действие этого подхода видно слабо.
P.S. srand(time(nulptr)) и rand() - "плохой" получения случайных чисел, так как время находится под контролем пользователя и он может выставлять время специально. Но "хороший" реализовывать здесь смысла нет.
===========================
Если решение удовлетворило, не забудь отметить его как "Лучшее".
===========================
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>
int rand_range(int min, int max) {
return std::rand() % (max - min + 1) + min;
}
int* random_sequence(int N, int min, int max) {
int *arr = new int[N];
for(auto i = 0; i < N; ++i) {
arr[i] = rand_range(min, max);
}
return arr;
}
template<typename T>
void print_sequence(const T * arr, size_t size) {
for(auto i = 0; i < size; ++i) {
std:: cout << arr[i] << " ";
}
}
long calculate_production(const int *arr, size_t size) {
long accumulator = 1;
for(auto i = 0; i < size; ++i) {
if (i % 2 == 0) continue;
accumulator *= arr[i];
}
return accumulator;
}
int main() {
const int min_random = -19, max_random = 26;
int N;
std::cout << "How many number should we generate? N = ";
std::cin >> N;
std::srand(std::time(nullptr));
int *arr = random_sequence(N, min_random, max_random);
print_sequence(arr, N);
auto result = calculate_production(arr, N);
std::cout << ":" << result;
delete[] arr;
return 0;
}