var a,n,i,j,s:integer; begin writeln('Введите количество цифр в числе'); readln(n); for i:=1 to n do begin writeln('Введите ',i,' цифру из ',n); readln(a); for j:=1 to n-i do a:=a*10; s:=s+a; end; writeln('Натуральное число: ',s); end.
Тестовое решение
Введите количество цифр в числе 5 Введите 1 цифру из 5 9 Введите 2 цифру из 5 2 Введите 3 цифру из 5 7 Введите 4 цифру из 5 3 Введите 5 цифру из 5 1 Натуральное число: 92731
Решение №2 Если очень надо использовать массив (хотя на мой взгляд совсем не нужно)
//PascalABC.NET (версия 3.1, сборка 1198) var a,n,i,j,s:integer; mas:array[1..10]of integer; begin writeln('Введите количество цифр в числе'); readln(n); for i:=1 to n do begin writeln('Введите ',i,' цифру из ',n); readln(mas[i]); a:=mas[i]; for j:=1 to n-i do a:=a*10; s:=s+a; end; writeln('Натуральное число: ',s); end.
Тестовое решение
Введите количество цифр в числе 5 Введите 1 цифру из 5 5 Введите 2 цифру из 5 4 Введите 3 цифру из 5 3 Введите 4 цифру из 5 2 Введите 5 цифру из 5 2 Натуральное число: 54322
Ничего не сказано про повторяющиеся значения. Если не делать проверку на повторяющиеся значения, то вот программа (проверена на версии ПаскальАВС.Нет):
var x: array [1..10] of integer; y, z: array [1..15] of integer; i, j, k: integer; f: boolean;begin //заполнение и распечатка массива Х for i := 1 to 10 do begin x[i] := random(10) + 1; write(x[i]:3); end; writeln;
//заполнение и распечатка массива У for i := 1 to 15 do begin y[i] := random(10) + 1; write(y[i]:3); end; writeln;
//заполнение массива Z for i := 1 to 15 do begin f := true; for j := 1 to 10 do if x[j] = y[i] then begin f := false; break; end; if f then begin k := k + 1; z[k] := y[i]; end; end;
//распечатка массива Z for i:=1 to k do write(z[i]:3); end.
var a,n,i,j,s:integer;
begin
writeln('Введите количество цифр в числе');
readln(n);
for i:=1 to n do begin
writeln('Введите ',i,' цифру из ',n);
readln(a);
for j:=1 to n-i do a:=a*10;
s:=s+a;
end;
writeln('Натуральное число: ',s);
end.
Тестовое решение
Введите количество цифр в числе
5
Введите 1 цифру из 5
9
Введите 2 цифру из 5
2
Введите 3 цифру из 5
7
Введите 4 цифру из 5
3
Введите 5 цифру из 5
1
Натуральное число: 92731
Решение №2 Если очень надо использовать массив (хотя на мой взгляд совсем не нужно)
//PascalABC.NET (версия 3.1, сборка 1198)
var a,n,i,j,s:integer;
mas:array[1..10]of integer;
begin
writeln('Введите количество цифр в числе');
readln(n);
for i:=1 to n do begin
writeln('Введите ',i,' цифру из ',n);
readln(mas[i]);
a:=mas[i];
for j:=1 to n-i do a:=a*10;
s:=s+a;
end;
writeln('Натуральное число: ',s);
end.
Тестовое решение
Введите количество цифр в числе
5
Введите 1 цифру из 5
5
Введите 2 цифру из 5
4
Введите 3 цифру из 5
3
Введите 4 цифру из 5
2
Введите 5 цифру из 5
2
Натуральное число: 54322
var
x: array [1..10] of integer;
y, z: array [1..15] of integer;
i, j, k: integer;
f: boolean;begin
//заполнение и распечатка массива Х
for i := 1 to 10 do
begin
x[i] := random(10) + 1;
write(x[i]:3);
end;
writeln;
//заполнение и распечатка массива У
for i := 1 to 15 do
begin
y[i] := random(10) + 1;
write(y[i]:3);
end;
writeln;
//заполнение массива Z
for i := 1 to 15 do
begin
f := true;
for j := 1 to 10 do
if x[j] = y[i] then
begin
f := false;
break;
end;
if f then
begin
k := k + 1;
z[k] := y[i];
end;
end;
//распечатка массива Z
for i:=1 to k do
write(z[i]:3);
end.