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

Даны цифры числа. собрать их в натуральное число (pascal, на одномерные массивы)

👇
Ответ:
almiradkzbd
almiradkzbd
16.12.2020
Решение №1 (без массивов)

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
4,7(95 оценок)
Открыть все ответы
Ответ:
Owslalien
Owslalien
16.12.2020
// PascalABC.NET 3.2, сборка 1427 от 24.04.2017
// Внимание! Если программа не работает, обновите версию!

function Pow(x,y:BigInteger):BigInteger;
begin
  Result:=x;
  for var i:=int64(2) to int64(y) do Result*=x
end;

begin
  var x,y:integer;
  Write('Введите натуральные х и у: '); Read(x,y);
  if (x<=0) or (y<=0) then begin
    Writeln('Неверный ввод'); Exit
    end;
  if x=1 then Writeln('Результат: ',y+1)
  else begin
    var x1:=Range(2,x).Aggregate(BigInteger(1),(a,b)->a*b);
    Writeln('Результат ',Pow(x,y)+Pow(y,x1))
    end
end.

Пример
Введите натуральные х и у: 5 8
Результат 2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703032325601
4,7(65 оценок)
Ответ:
максим1718
максим1718
16.12.2020
Для корректной работы программы диапазоны не должны пересекаться, то есть, должно быть так: X1 ≤ X2 < Y1 ≤ Y2 < Z1 ≤ Z2

Var
   X1,X2,Y1,Y2,Z1,Z2,G:byte;
Begin
Write('X1 = ');ReadLn(X1);
Write('X2 = ');ReadLn(X2);
Write('Y1 = ');ReadLn(Y1);
Write('Y2 = ');ReadLn(Y2);
Write('Z1 = ');ReadLn(Z1);
Write('Z2 = ');ReadLn(Z2);
Write('G = ');ReadLn(G);
if (X1<=G)and(G<=X2) then WriteLn('Полутяжёлый вес')
else if (Y1<=G)and(G<=Y2) then WriteLn('Тяжёлый вес')
     else if (Z1<=G)and(G<=Z2) then WriteLn('Супертяжёлый вес')
          else WriteLn('Не попадает в данные весовые категории')
End.

Пример работы программы:

X1 = 85
X2 = 94
Y1 = 95
Y2 = 104
Z1 = 105
Z2 = 200
G = 115
Супертяжёлый вес
4,6(8 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ