Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Как зделать ету задачу!!!


Автор: Славан 7.11.2005, 22:24
В етой задаче нужно росставть все двохзначные числа в порядке увилечения!!!Одно что я знаю что типдолжен быть STRING.Помогите please!!!
Пример:12 76 35
Вот что должно быть:12 35 76!!!

Автор: Rencom 7.11.2005, 23:23
сортируй методом пузырька, а т.к. стринг, то нужно будет переводить литеры в числа по средствам ф-ции ord и вычитать ord от нуля, т.е. перевод литер '12' в число будет выглядеть примерно так:
(ord(1)-ord(0))*10 + ord(2)-ord(0)

Автор: Quadr0 7.11.2005, 23:54
...

Автор: Славан 8.11.2005, 15:43
Твоя програма не роботает!!!Проверь!!!

Автор: volvo877 8.11.2005, 17:29
Славан, все нормально работает, просто для Дельфи написано... Вот тебе на Паскале:
Код

const
  n = 3;
  A: array[1 .. n] of string =
    ('12', '76', '35');
var
  i, j: integer;
  p: string;

begin
  for i := 1 to n do
    for j := 1 to n - i do
      if A[j] > A[j+1] then begin
        p := A[j];
        A[j] := A[j+1];
        A[j + 1] := P;
      end;

  for i := 1 to n do
    writeln(a[i]);
end.

Автор: sergejzr 8.11.2005, 21:03
Модератор: Название темы должно отражать ее суть!

Автор: Славан 8.11.2005, 22:40
Ето был примерюМне нужно числа написать самому.Числа все двохзначные.Я ввожу 30,23,57,13:Результат:13,23,30,50.

Автор: volvo877 8.11.2005, 23:30
Цитата
Мне нужно числа написать самому.

Ну, так измени чуть-чуть программу. Добавь САМ 3 строчки, неужели же ВСЁ надо сделать за тебя ???

Автор: darkart 9.11.2005, 03:39
Код

const
  n=3;
type
  TArr=array[1..n] of integer;//количество вводимых цифр
var
  s,sTemp:string;//s-вводимая строка, STemp - строка для преобразования
  Arr:TArr;//массив для сортировки
  i,k,code:integer;//i,k-счетчики
procedure SkipSpaces;//пропуск пробелов
begin
  while (s[i]=' ') and (i<=Length(s)) do
    inc(i);
end;
procedure GetStrNumber;//получение одного числа
begin
  sTemp:='';
  while (s[i]<>' ') and (i<=Length(s)) do
  begin
    sTemp:=sTemp+s[i];
    inc(i);
  end;
end;
begin
  read(s);
  i:=1;k:=0;
  while i<=Length(s) do
  begin
    SkipSpaces;
    if i<=Length(s) then
    begin
      inc(k);
      GetStrNumber;
      Val(sTemp,Arr[k],code);
    end;
  end;
  for i:=1 to n do
    for k:=i+1 to n do
      if Arr[k]<Arr[i] then
      begin
        code:=Arr[i];
        Arr[i]:=Arr[k];
        Arr[k]:=code;
      end;
  for i:=1 to n-1 do
    write(Arr[i],' ');
  writeln(Arr[n]);
  readln;
end.


Автор: Славан 9.11.2005, 15:56
Это задачка работает немножко неправильно. Я увожу 4 числа она выдает только 3 числа.

Автор: darkart 9.11.2005, 19:55
Константа n определяет количество вводимых чисел. Если нужно для 4 чисел замени n=3 на n=4!!!

Автор: banan 9.11.2005, 22:03
я так понял не обизательно 3 числа.Может быть 5,6,45.Нужно делать без константы

Автор: Rencom 10.11.2005, 00:14
поставь n=1000, т.к. массив нужно описать, прежде чем использовать, затем попроси ввести число элементов последовательности, после чего запрашивай ввод членов последовательности.

Автор: Славан 10.11.2005, 16:21
Я ставлю n=1000, она выдает правильно только сначала 0.0.0.0.0... а потом уже числа!!!

Автор: darkart 10.11.2005, 17:35
А сколько чисел ты вводишь! n штук?

Автор: Славан 11.11.2005, 15:45
Я зделал ету задачу:
Код

const
  max = 1000;
type
  TVector= array[1..max] of byte;
var
  vector:TVector;
  i,m: integer;
  f,f1:text;
procedure Vec(m:integer; var v:Tvector);
var
  B:byte;
  i,k:integer;
begin
 for k:=m downto 2 do
 for i:=1 to k-1 do
 if vector[i]> vector[i+1] then
           begin
            B:=vector[i];
            vector[i]:=vector[i+1];
            vector[i+1]:=B;
           end;
end;
  begin
  assign(f,'z3.dat');
  assign(f1,'z3.sol');
  reset(f);
  i:=1;
  while not eof(f) do
   begin
    read(f,vector[i]);
    inc(i);
   end;
   close(f);

   m:=i-1;
  Vec(m,vector);
   rewrite(f1);
   for i:=1 to m-1  do Write(f1,vector[i],' ');
   Write(f1,vector[m]);
  close(f1);
end.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)