Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 20:22   #1
WRNWRN
Новичок
Джуниор
 
Регистрация: 19.12.2010
Сообщений: 10
По умолчанию Не знаю как реалтзовать сортировку массива (Паскаль)

Всем добрый вечер! Задача такая: дан массив размером N. В него вводится с клавиатуры случайная последовательность букв и числел, заканчивающаяся точкой). Программа должна отсортировать все числа,имеющиеся в строке по возрастанию. (использовать число столько раз, сколько раз оно повторяется в введенной строке, например:
для строки FG2D2D36V2 последовательность будет - 22236).Если чисел нет , то вывести -1, если все нули, то вывести 0! ПОСЛЕДОВАТЕЛЬНОСТЬ НЕ МОЖЕТ НАЧИНАТЬСЯ С 0!!!
WRNWRN вне форума Ответить с цитированием
Старый 19.12.2010, 21:16   #2
iBuTTHead
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 35
По умолчанию

перебираете строку по символьно.
Код:
for i:=1 to length(stroka) do
     if stroka[i] in '0'..'9' then
          {Добавить в массив.}
Затем делайте сортировку, сществует множество вариантов.

пример:
Код:
for i:=1 to {размер массива}-1 do
     for j:=1 to {размер массива} do
          if mass[i]>mass[j] then
                   {Поменять местами.}
Набор эл-тов не может начинаться с нулей - и куда их пихарить??
iBuTTHead вне форума Ответить с цитированием
Старый 19.12.2010, 21:35   #3
WRNWRN
Новичок
Джуниор
 
Регистрация: 19.12.2010
Сообщений: 10
По умолчанию

Ничего не понял) Можно все одной программой?(в записи результата не должно быть незначащих нулей)
WRNWRN вне форума Ответить с цитированием
Старый 19.12.2010, 21:52   #4
iBuTTHead
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 35
По умолчанию

Код:
uses crt;
var
   stroka:string;
   mas:array [1..250] of integer;
   i,ii,j,code:integer;
   AllZero:Boolean;
begin
clrscr;
Write('Введите строку: ');
Readln(stroka);
j:=0;
for i:=1 to length(stroka) do
     if stroka[i] in ['0'..'9'] then{Если цифра}
        begin
             j:=j+1;{размерность массива}
             val(stroka[i],mas[j],code){из символа в цифру}
        end;
if j=0 then
    Write('-1');
else
begin
i:=0;
repeat
      i:=i+1;
      allzero:=mas[i]=0
until (i=j)or not allzero;{выход если конец или встретилась цифра отличная от 0}
if allzero then{если все нули}
   Write('0')
else{если не все нули}
    begin
    for i:=1 to j-1 do
        for ii:=i to j do
            if mas[i]>mas[ii] then
               begin{смена мест переменных в массиве}
                    mas[i]:=mas[i]+mas[ii];
                    mas[ii]:=mas[i]-mas[ii];
                    mas[i]:=mas[i]-mas[ii]
               end;
    for i:=1 to j do{вывод массива}
        Write(mas[i],' ')
    end
end;
readkey
end.
Как то так)). Но с нулями сами зделайте непонял честно...

Последний раз редактировалось iBuTTHead; 19.12.2010 в 21:56.
iBuTTHead вне форума Ответить с цитированием
Старый 19.12.2010, 22:03   #5
WRNWRN
Новичок
Джуниор
 
Регистрация: 19.12.2010
Сообщений: 10
По умолчанию

а как сделать, если нет цифр в строке те результат = -1?
WRNWRN вне форума Ответить с цитированием
Старый 19.12.2010, 22:17   #6
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от WRNWRN Посмотреть сообщение
а как сделать, если нет цифр в строке те результат = -1?
Ты бы уже так и написал , что тебе надо всю программу и бесплатно
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 19.12.2010, 22:36   #7
WRNWRN
Новичок
Джуниор
 
Регистрация: 19.12.2010
Сообщений: 10
По умолчанию

Все! Сообразил сам!) Осталось поянть, что такое незначащие нули? Может у кого есть догадки как их убрать из ответа?

Последний раз редактировалось WRNWRN; 19.12.2010 в 22:42.
WRNWRN вне форума Ответить с цитированием
Старый 20.12.2010, 22:07   #8
iBuTTHead
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 35
По умолчанию

Ну уж если ты не знаешь что такое твои незначащие нули то и мы подавно.
iBuTTHead вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на сортировку массива [Паскаль] Larkin Помощь студентам 1 05.12.2010 11:51
Задача на сортировку двумерного массива Angelika Помощь студентам 1 29.05.2009 18:49
вроде более менее понимаю паскаль.. но как предел писать не знаю((( chargosman Помощь студентам 11 11.01.2009 15:46
Из сортировки массива в сортировку матрици XXXimpulsXXX Помощь студентам 2 12.10.2008 15:11
Задача на сортировку массива Acid Паскаль, Turbo Pascal, PascalABC.NET 1 17.06.2007 00:16