Составить программу в Паскале.Вам дано три числа a, b и c. Вы должны в таком порядке...

0 голосов
71 просмотров

Составить программу в Паскале.
Вам дано три числа a, b и c. Вы должны в таком порядке приписать эти числа друг к другу, чтобы в результате получилось минимальное число. Например, если a=12, b=5, c=3, приписыванием можно получить числа 1253, 1235, 3125, 3512, 5123, 5312. Минимальным среди этих чисел является 1235.


Информатика (821 баллов) | 71 просмотров
0

какое ограничение a, b, c?

0

от 1 до 100

Дано ответов: 2
0 голосов
Правильный ответ
var a, b, c, p1, p2, p3, p4, p5, p6 :longint;
    s1, s2, s3, s4, s5, s6, a1, b1, c1 :string;
begin
   read (a);
   read (b);
   read (c);
   str(a,a1);
   str(b,b1);
   str(c,c1);
   s1:=a1+b1+c1;
   s2:=a1+c1+b1;
   s3:=b1+a1+c1;
   s4:=b1+c1+a1;
   s5:=c1+a1+b1;
   s6:=c1+b1+a1;
   val(s1,p1,a);
   val(s2,p2,a);
   val(s3,p3,a);
   val(s4,p4,a);
   val(s5,p5,a);
   val(s6,p6,a);
   a:=p1;
   if p2
   if p3
   if p4
   if p5
   if p6
   writeln(a);
end.
P.S. Грубо говоря мы собираем все возможные варианты, потом находим наименьшее и выводим его.
P.S.S. val(a, b, c) это процедура преобразования строки а в числовое значение b, а c проверка, преобразовалась ли она правильно.
И str(a, b) процедура перевода числового значения a, в строку b;
(1.9k баллов)
0

спасибо огромное:)

0 голосов

Var
  a: array[1..3] of string;
  i, j, k, min, x: integer;
begin 
for i := 1 to 3 do
  begin
    write('Введите ',i,' число:');
    readln(a[i]);
  end;
x := StrToInt(a[1] + a[2] + a[3]); 
min := x;  for i := 1 to 3 do
for j := 1 to 3 do
      if j <> i then
        for k := 1 to 3 do
          if (j <> k) and (i <> k) then
          begin
            x := StrToInt(a[i] + a[j] + a[k]);
            if x < min then min := x;
          end;
writeln('min=', min)
end.

0

Сейчас скопирую текст проги прям из ответа и проверю

0

Program1.pas(7) : Ошибка времени выполнения: Входная строка имела неверный формат.

0

Да у тебя не тот Паскаль! Написано в PascalABC.net. версия 2.2. Все работает! Только что проверил!

0

у меня также паскаль абс, однако это не важно, вам не кажется, что программа должна быть доступной.

0

Раз ругается на входную строку, значит, ты что-то неправильно вводишь, нет?

0

все понятно, ввод с новой строчки

0

А что, такой метод запрещен?)))

0

ну ни где не оговаривается, что ввод данных только с новой строчки

0

А где оговаривается, что они должны списком через запятую вводиться? Наоборот, вполне естественно - набрал число, нажал Ввод. Набрал следующее - нажал Ввод и т.д.

0

Поэтому я и убрал нарушение,потому что в условии это не оговорено, но на заметку, каждый вводит как ему удобно и когда в первый раз вводил я, программа выдала ошибку.