М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
TheHonorGaming
TheHonorGaming
23.12.2021 16:05 •  Информатика

Даны два вектора a(15) и b(15). если все элементы первого вектора меньше соответствующих элементов второгт вектора, то элементы первого вектора домножить на 10, а элементы второго вектора разделить на 2. в протмвном случае оставить векторы без изменения выполнить в среде разработки паскаль через подпрограммы (procedure)

👇
Ответ:
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

procedure LT(p,q:array of integer; var r:boolean);
begin
  r:=p.Zip(q,(i,j)->i-j).All(t->t<0)
end;

begin
  var a:=ArrRandom(15,-50,10); Print('a:'); a.Println;
  var b:=ArrRandom(15,-10,50); Print('b:'); b.Println;
  var less:boolean;
  LT(a,b,less);
  if less then begin
    a.Transform(t->t*10); Print('a:'); a.Println;
    b.Transform(t->t div 2); Print('b:'); b.Println
    end
  else Writeln('Векторы не менялись')
end.

Примеры
a: -1 -32 -32 6 -27 -19 -31 -24 -38 -7 -23 -20 -32 -32 2
b: -7 -8 4 -3 31 12 49 42 -9 3 -1 46 9 45 49
Векторы не менялись

a: -15 9 -43 -6 -27 -41 -37 4 -37 -22 -41 -34 -12 -5 -32
b: -1 21 -9 38 5 33 38 45 27 12 25 -7 40 38 9
a: -150 90 -430 -60 -270 -410 -370 40 -370 -220 -410 -340 -120 -50 -320
b: 0 10 -4 19 2 16 19 22 13 6 12 -3 20 19 4
4,5(51 оценок)
Открыть все ответы
Ответ:
1)
var i,a:Integer;
begin
a:= 1;
while a<>0 do
begin
Read(a);
i+=a;
end;
WriteLn(i=10);
end.

2) Можно через double. Но после 170! уже бесконечность.
var n:Integer;
var b:double;
begin
b:=1;
Read(n);
for var i:= 1 to n do
b*=i;
WriteLn('factorial '+n+' = '+b);
end.

3) Работает как и с числами так и со строками.
var arr:array of char;
var a:String;
var first,last:Integer;
begin
Read(a);
arr:= a.ToCharArray();
for var i:= 0 to arr.Length-1 do
begin
first:=Pos(arr[i], a);
last:=Pos(arr[i], a,first+1);
if (first>0) and (last > 0) and (first<>last) then
begin
first:=99;
break;
end;
end;
if first = 99 then
WriteLn('Содержит. Это число '+arr[last-1])
else
WriteLn('Несодержит.');
end.
4,5(87 оценок)
Ответ:
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

№1

function IsGood(n:integer):boolean;
begin
  n:=Abs(n);
  var s:=0;
  while n>0 do begin
    s+=n mod 10;
    n:=n div 10
    end;
  Result:=s=10
end;

begin
  var k:=ReadSeqIntegerWhile(t->t<>0).Where(t->IsGood(t)).Count;
  Writeln(k,' чисел с суммой цифр, равной 10')
end.

Пример
-5234 20043 52340 10531 -64 31502 0
2 чисел с суммой цифр, равной 10

№2

begin
  var n:=ReadInteger('Введите число:');
  if n<=1 then Writeln(n,'!=',1)
  else Writeln(n,'!=',1.To(n).Aggregate(BigInteger(1),(i,j)->i*j))
end.

Примеры
Введите число: 5
5!=120

Введите число: 20
20!=2432902008176640000

Введите число: 100
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

№3

begin
  if ReadInteger('Введите число:').ToString.GroupBy(t->t).
      Select(t->(t.Key,t.Count)).Any(t->t[1]>1)
  then Writeln('Число содержит по крайней мере две одинаковые цифры')
  else Writeln('Введенное число не содержит одинаковых цифр')
end.

Примеры
Введите число: 12345670
Введенное число не содержит одинаковых цифр

Введите число: 1320624
Число содержит по крайней мере две одинаковые цифры
4,6(17 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ