Для создания алгоритма (программы) необходимо знать:
полный набор исходных данных задачи (начальное состояние объекта);
цель создания алгоритма (конечное состояние объекта);
систему команд исполнителя (то есть набор команд, которые исполнитель понимает и может выполнить).
Полученный алгоритм (программа) должен обладать следующим набором свойств:
дискретность (алгоритм разбит на отдельные шаги - команды);
однозначность (каждая команда определяет единственно возможное действие исполнителя);
понятность (все команды алгоритма входят в систему команд исполнителя);
результативность (исполнитель должен решить задачу за конечное число шагов).
Большая часть алгоритмов обладает также свойством массовости (с одного и того же алгоритма можно решать множество однотипных задач).
#include <iostream>
#include <cmath>
#include <algorithm>
#pragma GCC optimize("Ofast")
#define ll long long
#define ld long double
using namespace std;
bool check_last(ll num){
if(num % 10 == 2)
return true;
else
return false;
}
bool check_parity(ll num){
while(num > 0){
if(num % 10 % 2 == 1)
return false;
num /= 10;
}
return true;
}
ld func(ll num){
ll sum = 0,am = 0;
while(num > 0){
sum += num % 10;
num /= 10;
am++;
}
return sum/am;
}
signed main() {
ll n;
cin >> n;
ll a[n];
for(ll i = 0; i < n; i++)
cin >> a[i];
for(auto i: a){
if(check_last(i) && check_parity(i))
cout << "Среднее арифметическое числа " << i << " равно: " << func(i) << "\n";
}
}
Поделитесь своими знаниями, ответьте на вопрос:
Программа в pascal. создать линейный числовой массив b[10]. заполнить его целыми числами интервала (-10, 10) . в данном числовом массиве поменять местами максимальные и минимальные элементы
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(10,-10,10); a.Println;
Swap(a[a.IndexMax],a[a.IndexMin]); a.Println;
end.
Пример
-4 4 5 9 8 -3 -10 -9 -2 -2
-4 4 5 -10 8 -3 9 -9 -2 -2
2. Решение в стиле "ТурбоПаскаль 1983г."
var
i,imax,imin:integer;
a:array[1..10] of integer;
begin
Randomize;
imax:=1;
imin:=1;
for i:=1 to 10 do begin
a[i]:=Random(21)-10;
Write(a[i],' ');
if a[i]<a[imin] then imin:=i
else
if a[i]>a[imax] then imax:=i
end;
Writeln;
i:=a[imax]; a[imax]:=a[imin]; a[imin]:=i;
for i:=1 to 10 do
Write(a[i],' ');
Writeln
end.