Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 38

Отсортировать массив в файле по возрастанию первой цифры

05.06.2015, 22:13. Показов 3193. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файле input.txt записаны числа (в столбик), известно, что их не более 100.
Отсортировать на ДИСКЕ массив по возрастанию ПЕРВОЙ цифры
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2015, 22:13
Ответы с готовыми решениями:

Отсортировать числа в файле по возрастанию последней цифры и записать в другой файл
В файле записаны в столбик целые числа. Отсортировать их по возрастанию последней цифры и записать в другой файл.

В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и записать в другой файл
Прошу помочь с заданием. https://www.cyberforum.ru/pascalabc/thread924809.html Это не подходит,т.к. программа не рабочая.

Отсортировать на диске массив по возрастанию предпоследней цифры
В файле input.txt записаны числа из интервала (в столбик), известно, что их не более 100. Отсортировать на диске массив по возрастанию...

9
Модератор
10441 / 5733 / 3406
Регистрация: 17.08.2012
Сообщений: 17,442
06.06.2015, 02:23

Не по теме:

Цитата Сообщение от Andryshan Посмотреть сообщение
на ДИСКЕ
Да хоть на обруче, какая разница.

Первая цифра - это младший разряд числа? Проверку на корректность входных данных делать?
1
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 38
06.06.2015, 15:17  [ТС]
2Cyborg Drone Как я понял, границ в задании не обозначено, но можно к примеру взять до 999 или 99 для удобства. Если в input'е к примеру будет: 76, 9, 300, 59, 0, то и вывести должно в output'е: 0,300, 59, 76,9.
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 38
08.06.2015, 12:33  [ТС]
up!
0
Модератор
10441 / 5733 / 3406
Регистрация: 17.08.2012
Сообщений: 17,442
08.06.2015, 17:55
Ага, значит, у Вас первая цифра - это старший разряд. Простейший вариант: для неотрицательных чисел, через строку, без проверки корректности чисел. Строка игнорируется, если первый символ не цифра или строка имеет нулевую длину. Никакие ограничения на диапазон входных чисел эту программу нисколечко не волнуют.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const f_in = 'input.txt';
      f_t = 'temp.tmp';
var f, g: text;
    c: char;
    s: string;
begin
  assign(f, f_in);
  assign(g, f_t);
  rewrite(g);
  for c := '0' to '9' do
    begin
      reset(f);
      while not eof(f) do
        begin
          readln(f, s);
          if (length(s) > 0) and (s[1] = c) then writeln(g, s)
        end
    end;
  close(f);
  close(g);
  erase(f);
  rename(g, f_in)
end.
Добавлено через 57 секунд
Если требуется не через строку и/или нужна проверка чисел на корректность, пишите.
1
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 38
08.06.2015, 20:55  [ТС]
Cyborg Drone, а можно через инпут и аутпут оформить? Чтобы можно было записать данные в инпуте, выполнить программу и получить результат в аутпуте?
0
Модератор
10441 / 5733 / 3406
Регистрация: 17.08.2012
Сообщений: 17,442
08.06.2015, 23:44
Я не постигаю истинного значения Вашего вопроса. Если имеются ввиду стандартные устройства ввода-вывода (input - клавиатура, output - дисплей), то зачем
Цитата Сообщение от Andryshan Посмотреть сообщение
Отсортировать на ДИСКЕ
Если имеются ввиду файлы (input.txt и output.txt), почему Вы, безо всякого уточнения, изменили имена файлов на кириллическую транслитерацию? У меня начинает складываться впечатление, что Вы не умеете задавать вопросы. Буду считать, что Вы имели ввиду текстовые файлы с именами input.txt и output.txt.

Добавлены:
- ввод исходного файла;
- обработка целых чисел, а не только неотрицательных;
- вывод исходного и отсортированного файлов на дисплей.

Программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const f_in = 'input.txt';
      f_out = 'output.txt';
var f, g: text;
    c: char;
    s: string;
    i, n, k: integer;
begin
  assign(f, f_in);
  rewrite(f);
  repeat
    write('Введите количество чисел: ');
    readln(n);
    if n <= 0 then writeln('Количество чисел должно быть больше 0, повторите ввод.')
  until n > 0;
  writeln('Введите ', n, ' целых чисел:');
  for i := 1 to n do
    begin
      write(i:2, ': ');
      readln(k);
      writeln(f, k)
    end;
  writeln('Исходный файл:');
  reset(f);
  for i := 1 to n do
    begin
      readln(f, k);
      write(k:10)
    end;
  writeln;
  assign(g, f_out);
  rewrite(g);
  for c := '0' to '9' do
    begin
      reset(f);
      while not eof(f) do
        begin
          readln(f, s);
          if (length(s) > 0) and (s[1] = c) or
             (length(s) > 1) and (s[1] = '-') and (s[2] = c)
            then writeln(g, s)
        end
    end;
  reset(g);
  writeln('Отсортированный файл:');
  reset(g);
  for i := 1 to n do
    begin
      readln(g, k);
      write(k:10)
    end;
  writeln;
  close(f);
  close(g);
  write('Нажмите <Enter> для выхода из программы');
  readln
end.
1
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 38
09.06.2015, 22:39  [ТС]
Cyborg Drone, Согласен, вопрос правильно поставить даже не смог нормально. Вообщем ваш первый вариант мне и нужен, но опять встала проблема: не могу вывести результат на экран, может быть опять как всегда что-то напутал. Вот скриншот:
Программу поместил вместе с текстовым файлом input, записал в него данные, сохранил, но при компиляции не выводит числа в порядке (т.е. вообще ничего не выводит). В чем проблема и правильно ли я вовсе это делаю?
Миниатюры
Отсортировать массив в файле по возрастанию первой цифры  
0
Модератор
10441 / 5733 / 3406
Регистрация: 17.08.2012
Сообщений: 17,442
10.06.2015, 00:58
Лучший ответ Сообщение было отмечено Andryshan как решение

Решение

Не знаю... Вы сохранили файл? Мало его напечатать в блокноте... Пока файл не сохранён, результат такой и должен быть. Лучше всего, для надёжности, закройте блокнот. Тогда Вы точно будете знать, где Ваши данные: в файле на диске или в оперативной памяти блокнота. Прогон с Вашими данными:

1
Модератор
10441 / 5733 / 3406
Регистрация: 17.08.2012
Сообщений: 17,442
10.06.2015, 01:06
Ну и, после завершения программы вторично откройте файл... На моём скриншоте файл открыт после завершения работы программы. Исходный файл - как на Вашем скриншоте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2015, 01:06
Помогаю со студенческими работами здесь

Отсортировать на диске массив по возрастанию ПРЕДПОСЛЕДНЕЙ цифры
В файле input.txt записаны числа из интервала (в столбик), известно, что их не более 100. Отсортировать на диске массив по возрастанию...

Отсортировать массив натуральных чисел по возрастанию после цифры элемента
4.Отсортировать массив натуральных чисел по возрастанию после цифры элемента.

Отсортировать файловый массив по возрастанию последней цифры и записать в другой файл
В файле не более 100 чисел. Отсортировать их по возрастанию последней цифры и записать в другой файл. Программа не выводит результат в...

Заданный одномерный массив отсортировать по возрастанию цифры десятков каждого элемента. Сортировка прямой выбор
Заданный одномерный массив отсортировать по возрастанию цифры десятков каждого элемента. Сортировка прямой выбор

Отсортировать слова по первой букве. Среди слов, начинающихся на одну и ту же букву, отсортировать слова по возрастанию
Дана последовательность символов, состоящая из слов. Словом называется последовательность строчных английских букв, ограниченных справа и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru