Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307

Сортировка

20.02.2018, 22:15. Показов 1012. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сортировка код есть немного додумать не понимаю как может кто разирается?
вот код как сделать чтобы оно не рандомно задавало числа . а в 1 файл-задавались числа любые. 2 файл- тоже задавались любые числа . а в 3 файл выводились после сортировки готовые числа . наподобие 1 файл 1 3 6 8. 2 файл 6 5 3 0 10 .3 файл 0 1 3 5 6 8 10 . и чтобы файлы не типизировались .



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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
const Nam1='1.txt';
      Nam2='2.txt';
var f,tf1,tf2:file of integer;
    key:integer;
    str:string;
    
//-----------------------------------------------------------------------
procedure Statick();
begin
assign(f,str);
rewrite(f);
write(f); 
close(f);
end;
//-------------------------------------------------------------------------
procedure CreateFile(var CFName:string; CFNum:integer);
var CFfil:file;
    CFTemp,CFi:integer;
begin
CFName:=CFNAME;
assign(cffil,cfname);
rewrite(cffil);
for cfi:=1 to cfnum do
  begin
  CFTemp:=random(1,100);
  write(cffil,cftemp);
  end;
close(cffil);  
end;
//-----------------------------------------------------------------------
procedure ReadFile(RFName:string);
var RFfil:file;
    RFTemp:integer;
begin
assign(rffil,rfname);
reset(rffil);
writeln;
while not EOF(rffil) do
  begin
  read(rffil,rftemp);
  write(rftemp,' ');
  end;
close(rffil);    
end;
//-----------------------------------------------------------------------
procedure minim(var m1:integer; var m2:integer);
var mvx:integer;
begin
If m1>m2 then 
  begin
  mvx:=m1;
  m1:=m2;
  m2:=mvx;
  end;
end;
//-----------------------------------------------------------------------
function Devide(Df,df1,df2:file of integer):boolean;
var dtp1, dtp2,
    dkol:integer;
    dfl1,dfl2:boolean;
begin
rewrite(df2);
rewrite(df1);
reset(df);
if EOf(df) then 
  begin
  writeln('Error!!!');
  exit;
  end;
read(df,dtp1);
write(df1,dtp1);
dkol:=1;
while not Eof(df) do
  begin
  read(df,dtp2);
  If dtp2<dtp1 then dkol:=dkol+1;
  If (dkol mod 2)=0 then
    begin
    write(df2,dtp2);
    dfl1:=True;    
    end
  else
    begin
    write(df1,dtp2);
    dfl2:=True;
    end;
  dtp1:=dtp2;
  end;
close(df1);
close(df2);
close(df);
result:= (dfl1 and dfl2);  
end;
//----------------------------------------------------------------------
procedure Concatenate(Cf,cf1,cf2:file of integer);
var ct11, ct12,
    ct21, ct22:integer;
    cfl1,cfl2:boolean;
begin
rewrite(cf);
reset(cf1);
reset(cf2);
read(cf1,ct11);
ct12:=ct11;
read(cf2,ct21);
ct22:=ct21;
//_________________________
while (not EOF(cf1)) and (not Eof(cf2)) do
  begin
  read(cf1,ct12);
  seek(cf1,filepos(cf1)-1);
  read(cf2,ct22);
  seek(cf2,filepos(cf2)-1);
  if ct12<ct11 then cfl1:=True;
  if ct22<ct21 then cfl2:=True;
  if cfl1 and cfl2 then
    begin
    if ct11>ct21 then write(cf,ct21,ct11)
      else write(cf,ct11,ct21);
    read(cf1,ct11);
    read(cf2,ct21);
    cfl1:=False;
    cfl2:=False;    
    continue;
    end;
  if ct11<ct21 then
    begin
    write(cf,ct11);
    if not cfl1 then read(cf1,ct11)
                else
                begin
                write(cf,ct21);
                read(cf2,ct21);
                read(cf1,ct11);
                end;   
    continue;            
    end; 
  if ct11>=ct21 then
    begin
    write(cf,ct21);
    if not cfl2 then read(cf2,ct21)
                else
                begin
                write(cf,ct11);
                read(cf1,ct11);
                read(cf2,ct21);
                end;   
    continue;            
    end;  
  end;
if ct11>ct21 then write(cf,ct21,ct11)
   else write(cf,ct11,ct21); 
if not EOF(cf1) then
  begin
  while not EOF(cf1) do
    begin
    read(cf1,ct12);
    write(cf,ct12);    
    end;
  end;  
if not Eof(cf2) then
  begin
  while not Eof(cf2) do
    begin
    read(cf2,ct22);
    write(cf,ct22);
    end;
   end;   
//_________________________
close(cf1);
close(cf2);
close(cf);  
end;
//-----------------------------------------------------------------------
procedure Sort(sf,sf1,sf2:file of integer);
begin
while Devide(sf,sf1,sf2) do
  begin
  Concatenate(sf,sf1,sf2);
  end;
ReadFile(Nam1);
ReadFile(Nam2);
ReadFile(str);  
end;
//-----------------------------------------------------------------------
begin
//readln(str);
str:='123.txt';
key:=10;
CreateFile(str,key);
ReadFile(str);
assign(f,str);
assign(tf1,Nam1);
assign(tf2,Nam2);
sort(f,tf1,tf2);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2018, 22:15
Ответы с готовыми решениями:

Сортировка пирамидой: Вычислить сколько шагов сделала сортировка
Есть код сортировки пирамидой, как теперь вычислить сколько шагов сделала сортировка прежде чем программа закончила работу, желательно с...

Сортировка
Выполнить сортировку по своей фамилии (Никитин). Буквы не должны быть одинаковыми. Слова должны быть разной длины

Сортировка
вот код что не так? когда ввожу 3 значения в 1 файл и 3 в другой то все норм сортирует а когда штук 10 в 1 файл и 10 в другой часть не...

10
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
21.02.2018, 07:14
Лучший ответ Сообщение было отмечено kalanda как решение

Решение

Типа опа!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const
  fName1 = '1.txt';
  fName2 = '2.txt';
  fName3 = '3.txt';
begin
  var s1 := ArrRandomInteger(5 + Random(10)).JoinIntoString;
  WriteAllText(fName1, s1);
  WriteLn('В файл ' + fName1 + ' записаны следующие числа: ' + s1);
 
  var s2 := ArrRandomInteger(5 + Random(10)).JoinIntoString;
  WriteAllText(fName2, s2);
  WriteLn('В файл ' + fName2 + ' записаны следующие числа: ' + s2);
  
  var s3 := (ReadAllText(fName1) + ' ' + ReadAllText(fName2)).ToWords.Select(strNum->StrToInt(strNum)).Sorted.JoinIntoString;
  WriteAllText(fName3, s3);
  WriteLn('В файл ' + fName3 + ' записаны следующие числа: ' + s3);
end.
1
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
21.02.2018, 08:52  [ТС]
СПАСИБО . но а как сделать что бы я завал числа вместо рандома?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
21.02.2018, 08:56
Лучший ответ Сообщение было отмечено kalanda как решение

Решение

Вместо
Code
1
ArrRandomInteger(5 + Random(10))
вводить
Code
1
ReadArrInteger('Числа:', ReadInteger('Количество чисел:'))
1
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
21.02.2018, 09:03  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const
  fName1 = '1.txt';
  fName2 = '2.txt';
  fName3 = '3.txt';
begin
  var s1 := ReadArrInteger('Числа:', ReadInteger('Количество чисел:')).JoinIntoString;
  WriteAllText(fName1, s1);
  WriteLn('В файл ' + fName1 + ' записаны следующие числа: ' + s1);
 
  var s2 := ReadArrInteger('Числа:', ReadInteger('Количество чисел:')).JoinIntoString;
  WriteAllText(fName2, s2);
  WriteLn('В файл ' + fName2 + ' записаны следующие числа: ' + s2);
  
  var s3 := (ReadAllText(fName1) + ' ' + ReadAllText(fName2)).ToWords.Select(strNum->StrToInt(strNum)).Sorted.JoinIntoString;
  WriteAllText(fName3, s3);
  WriteLn('В файл ' + fName3 + ' записаны следующие числа: ' + s3);
так? когда ввожу числа то они както странно вводятся , еще не могли бы подсказать как допусти задавать их сразу в 1.txt и 2.txt ? и тобы оно выводило в 3.txt отартированные?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
21.02.2018, 09:18
Цитата Сообщение от kalanda Посмотреть сообщение
когда ввожу числа то они както странно вводятся
Как они „странно вводятся“?
Телепаты сегодня отсутствуют.

Вводить можно так:
Code
1
2
Количество чисел: 8
Числа: 5 4 3 2 1 0 -1 -2
Цитата Сообщение от kalanda Посмотреть сообщение
как допусти задавать их сразу в 1.txt
Что это вообще имеется в виду? И как это понимать по русски?

Цитата Сообщение от kalanda Посмотреть сообщение
и тобы оно выводило в 3.txt отартированные?
Тартилла — это так звали черепаху в „Золотом ключике“…
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
21.02.2018, 09:21  [ТС]
как задавать числа сразу в(файлах) 1.txt и 2.txt ? и чтобы оно выводило в (файл) 3.txt отсартированные? извините за безграмотность , буду стараться .

код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const
  fName1 = '1.txt';
  fName2 = '2.txt';
  fName3 = '3.txt';
begin
  var s1 := ReadArrInteger('Числа:', ReadInteger('Количество чисел:')).JoinIntoString;
  WriteAllText(fName1, s1);
  WriteLn('В файл ' + fName1 + ' записаны следующие числа: ' + s1);
 
  var s2 := ReadArrInteger('Числа:', ReadInteger('Количество чисел:')).JoinIntoString;
  WriteAllText(fName2, s2);
  WriteLn('В файл ' + fName2 + ' записаны следующие числа: ' + s2);
  
  var s3 := (ReadAllText(fName1) + ' ' + ReadAllText(fName2)).ToWords.Select(strNum->StrToInt(strNum)).Sorted.JoinIntoString;
  WriteAllText(fName3, s3);
  WriteLn('В файл ' + fName3 + ' записаны следующие числа: ' + s3);
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
21.02.2018, 10:11
Ну, дык, создайте в блокноте строку чисел через пробел…
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
21.02.2018, 10:17  [ТС]
я записываю числа через пробел в текстовом (1.txt u 2.txt) а в 3.txt они не сортируются , надо именно в программе записывать. а как сделать чтобы в блокноте 1 и 2 .тхт записал их нажал кнопку в программе и они отсортировались в 3.тхт?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
21.02.2018, 10:18
Убрать создание 1 и 2 фалов в программе не пробовали?
1
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
21.02.2018, 10:25  [ТС]
понял вас спасибо , за помошь очень помогли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2018, 10:25
Помогаю со студенческими работами здесь

Сортировка
15) В соревнованиях по многоборью (из M видов спорта) участвуют N спортсменов (N &lt; 1000) . На вход программе в первой строке подается...

Сортировка массива
Доброго времени суток. Вот вариант метода сортировки массива пузырьком. Здесь,по-моему,максимальная сложность N2. Можно как-то упростить...

Сортировка массивов
Осуществить сортировку заданного массива, двумя методами: 1 метод - Порязрядная сортировка 2 метод - Быстрая Сортировка Спасите...

Сортировка строк
Здравствуйте. Появился вопрос. Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников...

Быстрая сортировка
Прочитал код быстрой сортировки https://foxford.ru/wiki/informatika/bystraya-sortirovka-hoara-pascal. procedure sort(var ar: arrType; m,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru