Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Юзер вводит числа, их надо отсортировать


Рекомендуемые сообщения

Юзер вводит числа (вещественные). Сколько штук он введет - неизвестно. их надо отсортировать. числа он вводит, разделяя пробелом. Сортировку как осуществить сам разберусь как нибудь, но как сделать, чтобы вводился массив из х элементов?????

Ссылка на комментарий
Поделиться на другие сайты

Смотря как поставлена задача.

Если задача на сортировку - тогда просто обьяви массив из 1000 или 10000 элементов.

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

Ссылка на комментарий
Поделиться на другие сайты

то что он вводит это строка

вто в простом варианте

vars,s1:string;mas=array [1...10000] of intger;k:integer;beigns1:='';k:=1;for i:=1 to length(s) do beginif s[i]<>' ' then s1:=s1+s[i] else begin    mas[k]:=strtoint(s1);   s1:='';   k:=k+1; end; end;end.

s-строка что ввел юзер

s1-накапливаем числа

Изменено пользователем ant_ig
Ссылка на комментарий
Поделиться на другие сайты

ant_ig

Ну, навскидку сразу несколько проблем:

1. Учитываются только одноразрядные числа (0-9)

2. Паскалевская строка может содержать не больше 255 символов

Ссылка на комментарий
Поделиться на другие сайты

 uses crt;var  ch   : char;  a	: array[1..10000] of integer;  s	: string;  code : integer;  k	: integer;begin s := ''; k := 1; repeat	   ch := readkey;	   write(ch);	   if (ch <> ' ') and (ch <> #13) then		  s := s + ch	   else		   begin				val(s,a[k],code);				inc(k);				s := '';		   end; until ch = #13; writeln;end.
Ссылка на комментарий
Поделиться на другие сайты

ant_ig

Ну, навскидку сразу несколько проблем:

1. Учитываются только одноразрядные числа (0-9)

2. Паскалевская строка может содержать не больше 255 символов

1. тут ты не прав

if s<>' ' then s1:=s1+s,<- тут накапливаем

2. как я понял это для лабы, когда я учился больше 255 и не требовалось

но вариант yuriks явно универсальней :no:

Изменено пользователем ant_ig
Ссылка на комментарий
Поделиться на другие сайты

Люди, оказалось не все так просото (для меня):

Юзер вводит числа нажимая энтэр после каждого. Их надо отсортировать по возрастанию и вывести только те, которые встречаются только один раз. Использовать можно только массивы, операторы условного перехода, циклы и все.

Ссылка на комментарий
Поделиться на другие сайты

Юзер вводит числа нажимая энтэр после каждого.
Это сделать несложно - read() в цикле и нет проблем. Как узнать что он ввел все что хотел, и введенные данные пора обрабатывать?
Их надо отсортировать по возрастанию и вывести только те, которые встречаются только один раз
Тоже, собственно, проблем нету. Сначал сортировка, потом проход по отсортированному массиву и вывод только тех, которые не повторяются (одинаковые числа стоят рядом, так что проблем найти их нету).
Использовать можно только массивы, операторы условного перехода, циклы и все.
Хм... :) А что, собственно ты еще собирался использовать? GOTO что-ли?
Ссылка на комментарий
Поделиться на другие сайты

Бумер:

vari,j,n: Integer; t: Integer;A: array[0..100] of Integer;beginn:=0; A[0]:=0;repeatinc(n); ReadLn (A[n]);until A[n]=0;n:=n-1;for i:=1 to n dofor j:=1 to n-i do if A[j]>A[j+1] then  begint:=A[j]; A[j]:=A[j+1]; A[j+1]:=t;  end; for i:=1 to n doif (A[i-1]<>A[i]) and (A[i]<>A[i+1]) then WriteLn(A[i]);end.

Пример - для целых чисел, для вещественных надо изменить объявления t и A.

Ввод чисел заканчивается вводом нуля.

Кстати, где ты возьмешь "оператор условного перехода" в Паскале? Разве что самому сконструировать :) IF ... THEN GOTO ...

Ссылка на комментарий
Поделиться на другие сайты

А где можно нормально (понятно) почитать о сортировках вставкой, выбором и обменом. Чтоб понятно и с примерами. Есть такое? Ведь их же не учить надо, а понимать...

Ссылка на комментарий
Поделиться на другие сайты

Бумер:

Вообще главным руководством по алгоритмам считается трехтомник Дональда Кнута "Искусство программирования". Классикой считается также "Алгоритмы и структуры данных" Никлауса Вирта.

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...