Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
1

Запись чисел из файла 1, и запись в файл 2 в отсортированном виде

07.02.2016, 15:29. Просмотров 1058. Ответов 11
Метки нет (Все метки)

Задание: Есть файл 1, в нем находятся числа, нужно их отсортировать по возрастанию и записать в файл 2.
У меня получается бред какой-то, вроде бы просто, но не так как кажется.

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
var f,t:text;
    a:array[1..1000] of integer;
    n,i,x,j,min,nomer_min:integer;
begin
assign(t,'d:\input.txt');
reset(t);
n:=0;
assign(f,'output.txt');
    rewrite(f);
while not eof(t) do
 begin
  inc(n);
  read(t,a[n]);
 end;    
 for i := 1 to n-1 do
  begin
    min := A[i];
    nomer_min := i;
    for j := (i + 1) to n do
    begin
      if A[j] < min then
      begin
        min := A[j];
        nomer_min := j;
      end;
    end;
    A[nomer_min] := A[i];
    A[i] := min;
   
    for j := 1 to n do
    write(f,A[j]:4);
    end;
    close(f);
    close(t);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2016, 15:29
Ответы с готовыми решениями:

Запись в файл в виде квадратиков вместо чисел
Вот часть фрагмента кода, которая использует запись в файл: Procedure punkt3; var f:file of...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран...

Чтение чисел из файла и запись в файл
Ранее программировал в Delphi и С++, там можно было читать числа. Недавно увлёкся питоном, а тут,...

Запись - чтение чисел с файл - из файла
Собственно задача. Пример Пример ввода: 3 4 0 -5

11
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30262 / 19770 / 7733
Регистрация: 22.10.2011
Сообщений: 34,496
Записей в блоге: 6
07.02.2016, 15:32 2
В каком виде в файле находятся числа? Каждое на своей строке, или через разделитель?
0
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
07.02.2016, 15:42  [ТС] 3
volvo, записаны через пробел в одной строке
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30262 / 19770 / 7733
Регистрация: 22.10.2011
Сообщений: 34,496
Записей в блоге: 6
07.02.2016, 15:49 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
begin
  WriteAllText('output.txt', string.Join(' ', 
    ReadAllText('input.txt').Split('  '.ToCharArray()). Select(StrToInt).OrderBy(x -> x).Select(x -> IntToStr(x)).ToArray()));
end.
делает то, что требуется в задании
0
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
07.02.2016, 15:58  [ТС] 5
volvo, не хочет запускаться, ругается на .Select(x -> IntToStr(x))
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30262 / 19770 / 7733
Регистрация: 22.10.2011
Сообщений: 34,496
Записей в блоге: 6
07.02.2016, 16:00 6
У тебя точно PascalABC.NET? И .NET 4 или выше? Под третьим код будет чуть-чуть другим, под четвертым программа прекрасно работает.
0
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
07.02.2016, 16:06  [ТС] 7
volvo,
0
Миниатюры
Запись чисел из файла 1, и запись в файл 2 в отсортированном виде   Запись чисел из файла 1, и запись в файл 2 в отсортированном виде  
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
07.02.2016, 16:08  [ТС] 8
volvo, а можно альтернативный алгоритм? Что-то вроде моего, только правильный) Потому что ваш я вряд ли пойму
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30262 / 19770 / 7733
Регистрация: 22.10.2011
Сообщений: 34,496
Записей в блоге: 6
07.02.2016, 16:10 9
Лучший ответ Сообщение было отмечено smay как решение

Решение

Это устаревшая версия компилятора. Уже 3.0.0 полным ходом идет. Пробуй код для старых версий:
Pascal
1
2
3
4
5
6
7
8
{$reference System.Core.dll}
uses System.Linq, System.IO;
 
begin
  &File.WriteAllText('output.txt', string.Join(' ', 
    &File.ReadAllText('input.txt').Split('  '.ToCharArray()).
      Select(StrToInt).OrderBy((x : integer) -> x).Select((x : integer) -> IntToStr(x)).ToArray()));
end.
1
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
07.02.2016, 16:13  [ТС] 10
volvo, этот уже работает. Спасибо, но я плохо понимаю этот алгоритм, можно как-нибудь полегче?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30262 / 19770 / 7733
Регистрация: 22.10.2011
Сообщений: 34,496
Записей в блоге: 6
07.02.2016, 16:14 11
Цитата Сообщение от smay Посмотреть сообщение
Потому что ваш я вряд ли пойму
Чего тут понимать-то? Читаем весь текст в виде одной строки из исходного файла, разбиваем строку на отдельные подстроки по пробелам, каждую из подстрок преобразуем в число, и эти числа упорядочиваем через OrderBy по возрастанию. А потом - конвертируем числа назад в строки, объединяем все подстроки в одну строку через string.Join, и пишем в выходной файл.

Добавлено через 1 минуту
Полегче - это опять вручную? Нет, это не ко мне. Неинтересно в миллионный раз писать алгоритм сортировки пузырьком, когда компилятор уже содержит все средства, чтобы этого не делать.
0
3 / 3 / 5
Регистрация: 07.12.2013
Сообщений: 189
07.02.2016, 16:18  [ТС] 12
volvo, спасибо, теперь все понятно)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2016, 16:18

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

Вычислить среднее арифметическое чисел из файла и запись всех чисел меньших него в файл B.txt
Напишите программу, в которой происходит чтение целых чисел из файла A.txt (произведите проверку на...

Поиск чисел в тексте из файла и запись в файл
есть ли у кого такая программа?у самой есть только поиск чисел в строке,а как сделать чтоб читало...

Запись в 2 файла, сравнение и запись в 3-ий файл
Нуждаюсь в помощи с программами, написаны, вот надо готовить отчеты, но проблема в том, что у нас...

Запись/чтение из файла. Записать в файл пары чисел [x ,y] .
Нужно записать в файл пары чисел а потом прочитать информацию из файла и вывести на экран С...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.