Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
1

Все четные элементы файла записать во второй файл и отсортировать их в порядке возрастания

02.07.2011, 00:01. Показов 1389. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется файл, элементами которого являются целые числа. Все четные элементы этого файла записать во второй файл и отсортировать их в порядке возрастания, а нечетные – в третий файл и отсортировать их в порядке убывания.

помогите сделать сортировку файлов F2 и F3

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
program chislo;
uses crt;
var f1,f2,f3:file of integer;
a:array [1..100] of integer;
n,i,j,m,k,x:integer;
begin
clrscr;
randomize;
writeln('vvedite kolichesnvo chisel');
readln (n);
assign(f1,'c:\file1');
rewrite(f1);
assign(f2,'c:\file2');
rewrite(f2);
assign(f3,'c:\file3');
rewrite(f3);
   for i:=1 to n do
   begin
a[i]:=random(n);
write(f1,a[i]);
    end;
reset(f1);
writeln('Ishodnyj fail:');
while not eof(f1) do
begin
read(f1,a[i]);
write(a[i],' ');
if odd(a[i])then write(f3,a[i])
else write(f2,a[i]);
end;
close(f1);
writeln;
reset(f2);
writeln('Fail chetnih chisel:');
while not eof(f2) do
begin
read(f2,a[i]);
write(a[i],' ');
end;
close(f2);
writeln;
reset(f3);
writeln('Fail nechetnih chisel:');
while not eof(f3) do
begin
read(f3,a[i]);
write(a[i],' ');
end;
close (f3);
readln;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2011, 00:01
Ответы с готовыми решениями:

Все четные элементы файла записать во второй файл и отсортировать их в порядке возрастания
Помогите пожалуйста не могу сделать сортировку в файлах. помогите пожалуйста не знаю как это...

Все четные числа файла записать во второй файл, а нечетные — в третий файл
Имеется файл, элементами которого являются целые числа. Все четные числа этого файла записать во...

Все четные числа файла записать во второй файл, а нечетные — в третий
Имеется файл, элементами которого являются целые числа. Все четные числа этого файла записать во...

Заменить все отрицательные элементы вектора на их квадраты и отсортировать в порядке возрастания
Буду очень благодарна,если напишите программу. Дан вещественный вектор А . Заменить все...

14
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
02.07.2011, 00:10 2
Если файлы небольшие (таки часто дают на лабораторку) создайте массив и отсортируйте хоть "пузырьком". Если нельзя (религия преподавателя запрещает) тогда вам надо просто менять строки в файле (тот же "пузырек")
Алгоритм сортировки по возрастанию.
1. Открыть файл.
2. Пусть 1-я строка - макс элемент. Опустить флажок.
3. Цикл по элементам со 2-ой строки
4. Если строка цикла больше чем 1-ый элемент - поменять местами (запомнить во временную переменную строку цикла, поместить в строку значение 1-ой, а в 1-ю - запомненное). Поднять флажок.
5. Если флажок поднят - пвторить цикл.
5.
1
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 01:59  [ТС] 3
помогите я до сих пор не пойму как это сделать, если можно наглядно. как мне сделать

вот например сам метод пузырька,

Pascal
1
2
3
4
5
6
7
    for i := 1 to n-1 do
        for j := 1 to n-i do
            if a[j] > a[j+1] then begin
                k := a[j];
                a[j] := a[j+1];
                a[j+1] := k
            end;
как мне его включить в код чтобы данные в файле-f2 были отсортированны

Добавлено через 1 час 33 минуты
НУ МНЕ КТО НИБУДЬ ПОМОЖЕТ??(((((((((((((((
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 22
02.07.2011, 07:31 4
я сортирую через repeat:
Pascal
1
2
3
4
5
6
7
8
9
10
  repeat  //повторяем цикл до тех пор, пока с не равно 0
      c:=0;
       for i:= 1 to n-1  do
           if mas[i,j]>mas[i+1,j] then // если текущее значение больше следующего
             begin                     //меняем их местами и счетчик +1
               x:= mas[i,j];
               mas[i,j]:=mas[i+1,j];
               mas[i+1,j]:=x;
               c:=c+1;
             end;
0
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 08:14  [ТС] 5
куда мне этот кусок сортировки вставлять, в какое место программы?
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 22
02.07.2011, 08:19 6
там где вы сортируете четные и отдельно нечетные числа
0
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 08:21  [ТС] 7
Pascal
1
reset(f2);
вот я открываю файл
вставляю сортировку
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for i := 1 to n-1 do
for j := 1 to n-i do
if a[j] > a[j+1] then begin
k := a[j];
a[j] := a[j+1];
a[j+1] := k
end;
writeln('Fail chetnih chisel:');
while not eof(f2) do
begin
read(f2,a[i]);
write(a[i],' ');
end;
close(f2);
но все равно сортировка не работает
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 22
02.07.2011, 08:27 8
у меня тоже не работает делаю через repeat:
reset(f2);
вот я открываю файл
вставляю сортировку
Pascal
1
2
3
4
5
6
7
8
9
10
11
repeat 
 c:=0
for i:= 1 to n-1 do
if a[j]>a[j+1] then // если текущее значение больше следующего
begin //меняем их местами и счетчик +1
x:= a[j];
a[j]:=a[j+1];
a[i,j+1]:=x;
c:=c+1;
end
until c=0;
как не работает? не верный результат или ошибку пишет?
0
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 08:37  [ТС] 9
ну она просто не сортирует, файл все равно не отсортирован получается
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 22
02.07.2011, 08:42 10
можите его откоменентрировать и прислать на почту - могу посмотреть что там?
0
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 08:44  [ТС] 11
да, какой адрес?
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 22
02.07.2011, 08:46 12
soniema@yandex.ru
0
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 09:12  [ТС] 13
какой адрес?

Добавлено через 52 секунды
а все извиняюсь

Добавлено через 9 минут
ну я все отправил, только мне кажется что саму сортировку программа как бы не видет
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
02.07.2011, 10:13 14
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

сортировка в типизированном файле и без массива можно осуществить.
Например так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
reset(f);
for i:=0 to filesize(f)-1 do
  for j:=i+1 to filesize(f)-1 do
   begin
    seek(f,i);
    read(f,k);
    seek(f,j);
    read(f,l);
    if k<l then
    begin
     c:=k;
     k:=l;
     l:=c;
     seek(f,i);
     write(f,k);
     seek(f,j);
     write(f,c);
    end;
   end;
Close(f);
0
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 19
02.07.2011, 11:03  [ТС] 15
спасибо огромное))))
0
02.07.2011, 11:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2011, 11:03
Помогаю со студенческими работами здесь

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

Четные цифры отсортировать в порядке возрастания
в одномерном числовом массиве четные цифры отсортировать в порядке возрастания. массив должен...

Массив. Вывести все четные в порядке возрастания их индексов,все нечетные в порядке их убывания
помогите, пожалуйста, решить задачи по массивам. очень нужно. полностью пропустила эту тему( 1.дан...

Записать в файл С все четные числа файла F, а в файл N - все нечетные.
сформировать файл F, компонентами которого являются целые числа. записать в файл С все четные числа...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru