Кожен алгоритм має справу з даними – вхідними, проміжними, вихідними
Алгоритм для розміщення даних вимагає пам'яті.
Алгоритм складається з окремих елементарних кроків, причому множина різних кроків, з яких складений алгоритм, скінченні.
Послідовність кроків алгоритму детермінована,
Алгоритм повинен бути результативним, тобто
Алгоритм передбачає наявність механізму реалізації,
Объяснение:
Вимога 1 відповідає цифровій природі ПК, вимога 2 – пам'ять ПК, вимога 3 – програмі машини, вимога 4 – її логічній природі, вимоги 5, 6 – обчислювальному пристрою та його можливостям.
Две задачи в одной программе:
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
cout << "x > " << Z << ":" << endl;
int count = 0;
int sum = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[j][i] > Z)
count++;
if (matrix[i][j] < 0)
sum += matrix[i][j];
}
cout << setw(4) << count << ' ';
count = 0;
}
cout << endl;
cout << endl;
cout << "Sum: " << sum << endl;
cout << endl;
return 0;
}
По отдельности:
1)
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
cout << "x > " << Z << ":" << endl;
int count = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[j][i] > Z)
count++;
}
cout << setw(4) << count << ' ';
count = 0;
}
cout << endl;
int sum = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[i][j] < 0)
sum += matrix[i][j];
}
}
cout << "Sum: " << sum << endl;
cout << endl;
return 0;
}
2)
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int randInt(int min, int max){
return min + (rand() % (max - min + 1));
}
int main(int argc, char *argv[]){
const int DIM = 5;
int matrix[DIM][DIM];
const int Z = 0;
srand(time(0));
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
matrix[i][j] = randInt(-5, 5);
cout << setw(4) << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
int sum = 0;
for (int i = 0; i < DIM; i++) {
for (int j = 0; j < DIM; j++) {
if (matrix[i][j] < 0)
sum += matrix[i][j];
}
}
cout << "Sum: " << sum << endl;
cout << endl;
return 0;
}
// Внимание! Если программа не работает, обновите версию!
procedure FillRandom(var P:array of integer; a,b:integer);
begin
var (k,n):=(0,P.Length);
repeat
P:=ArrRandom(n,a,b);
k+=1;
until P.Distinct.Count=n;
Writeln('Сделано ',k,' генераций массива')
end;
begin
var n:=ReadInteger('n=');
var (a,b):=ReadInteger2('Укажите интервал значений элементов:');
if b-a+1<n then Writeln('Задание выполнить невозможно')
else begin
var x:=new integer[n];
FillRandom(x,a,b);
x.Println
end
end.
Примеры
n= 15
Укажите интервал значений элементов: 10 30
Сделано 695 генераций массива
14 26 30 18 27 20 28 10 25 12 22 29 13 15 17
n= 15
Укажите интервал значений элементов: -50 50
Сделано 6 генераций массива
20 11 31 8 12 -47 16 -27 -21 -44 32 10 47 -36 46