Для табулирования любой функции на любом отрезке с любым шагом и любой точностью. При всевозможных значениях "косметика" (которой в предыдущем ответе вообще нет) не нарушается.
procedure Tabulate(a,b,h:real; f:real->real; k:byte:=2; sp:byte:=3);beginvar w := Seq(a, a+Trunc((b-a)/h)*h).Max(x->x.ToString.Length)+k+1;Writeln(' x'.PadLeft(w), ' '*sp, 'y');repeat Writeln(a:w:k, ' '*sp, f(a):0:k); a+=h until a>bend; beginvar a := ReadInteger('Введите a:');Tabulate(1, 10, 1, x->Cos(x+a))end.Пример работы:
21797 Кб
Объяснение:
Изображение 10 см (10/2,54 ≈ 3,94 дюймов) на 20 см (20/2,54 ≈7,87 дюймов) Общая площадь изображения составляет 3,94*7,87 ≈ 31 кв. дюйм.
Разрешающая сканера 600*1200 = 720000 точек на 1 квадратный дюйм.
У нас 31 квадратный дюйм, всего при сканировании сканер получит 31*720000= 22320000 точек.
Цвет каждой точки кодируется 1 байтом. Общий объем изображения составит
22320000 *1 = 22320000 байт, или
22320000/1024 ≈ 21797 Кб.
Все это верно если в задаче нет описки и глубина цвета действительно 1 байт а не 1 бит.
Відповідь:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void SetArray(int *A,int N){
for(int i = 0; i < N; i++){
A[i] = rand() % 10 + 1;
}
}
void PrintArray(int *A,int N){
for(int i = 0;i < N; i++){
cout << A[i] << " ";
}
}
void expression(int *A,int N,int k,int l){
for(int k; k <= l; k++, l--){
swap(A[k], A[l]);
}
}
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
int N,k,l;
cout << "Введите размер массива: ";
cin >> N;
int *A = new int[N];
SetArray(A,N);
PrintArray(A,N);
cout << "\nВведите k: ";
cin >> k;
cout << "Введите l: ";
cin >> l;
expression(A,N,k,l);
PrintArray(A,N);
delete[] A;
return 0;
}
// --- PascalABC.NET 3.6.3 ---
begin
var y: (real, real) -> real := (x, a) -> cos(x+a);
var a := ReadInteger('Enter "a": ');
PartitionPoints(1,10, 9).Tabulate(x -> y(x, a)).Println;
end.