0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
1

Напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка

14.06.2016, 17:23. Показов 2840. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пмоогите пожалуйста написать программный код:

Используя очередь, решить следующую задачу. TYPE FR = FILE OF REAL; За один просмотр файла f типа FR и без использования дополнительных файлов напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка [a, b], и наконец– все остальные числа, сохраняя исходный взаимный порядок в каждой из этих групп чисел (a ,b – заданы, a<b).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2016, 17:23
Ответы с готовыми решениями:

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

Переставить элементы в массиве так, чтобы сначала следовали все отрицательные числа, а затем все остальные
Дан одномерный массив целых чисел. Переставить элементы в массиве таким образом, чтобы сначала...

Напечатать сначала все отрицательные числа последовательности, а затем — все положительные
Дана последовательность из N целых чисел, N+1 элемент которой равен нулю (последовательность не...

За один просмотр файла вывести сначала все числа, меньшие а
Товарищи, помогите написать программу. С меня вознаграждение в размере 100-150 рублей. Условие...

13
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
18.06.2016, 12:25  [ТС] 2
Ребят, ещё актуально.
0
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
20.06.2016, 07:47  [ТС] 3
Что-то нету ни кого?(
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7520 / 4384 / 2781
Регистрация: 22.11.2013
Сообщений: 12,546
Записей в блоге: 1
20.06.2016, 11:59 4
Лучший ответ Сообщение было отмечено Tuychin как решение

Решение

Что-то вроде
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
type
  PNode = ^TNode;
  TNode = record
    next: PNode; r: Real;
  end;
var
  f: file of Real;
  a, b, r: Real;
  ph, qh, p: PNode; pp, qq: ^PNode;
begin
  Assign(f,'input.dat'); Reset(f);
  Write('a, b: '); ReadLn(a,b); pp:=@ph; qq:=@qh;
  while not EoF(f) do begin
    Read(f,r);
    if r<a then WriteLn(r)
    else if r<=b then begin
      New(pp^); pp^^.r:=r; pp^^.next:=nil; pp:=@pp^^.next;
    end else begin
      New(qq^); qq^^.r:=r; qq^^.next:=nil; qq:=@qq^^.next;
    end;
  end;
  Close(f);
  while ph<>nil do begin
    WriteLn(ph^.r); p:=ph; ph:=ph^.next; Dispose(p);
  end;
  while qh<>nil do begin
    WriteLn(qh^.r); p:=qh; qh:=qh^.next; Dispose(p);
  end;
end.
1
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
20.06.2016, 13:50  [ТС] 5
bormant, здравствуйте. Спасибо что откликнулись, но в условии написано что без использование дополнительных файлов, а так же после ввода значений "a и b" ни чего не происходит. Программа просто закрывает свою работу.
Миниатюры
Напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка  
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
20.06.2016, 13:52 6
Цитата Сообщение от Tuychin Посмотреть сообщение
но в условии написано что без использование дополнительных файлов,
А где ты видишь дополнительный файл?
0
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
20.06.2016, 14:09  [ТС] 7
Немного перепутал с процедурой Assign, думал она обращается к доп. файлу. Осталась проблема с бездействием программы после ввода значений.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7520 / 4384 / 2781
Регистрация: 22.11.2013
Сообщений: 12,546
Записей в блоге: 1
20.06.2016, 15:10 8
Цитата Сообщение от Tuychin Посмотреть сообщение
Программа просто закрывает свою работу.
Добавьте ReadLn; перед end., будет ждать нажатия Enter.

Цитата Сообщение от Tuychin Посмотреть сообщение
просмотр файла f типа FR ... напечатать элементы файла f
Файл-то есть, а значения в нем у вас есть?

Прогон (чуть изменил формат вывода на более компактный):
Код
   68.63   99.59   67.18   80.94   12.86   34.06    3.33   66.32   92.11   38.16
   92.96   10.09   38.57   56.07   48.42    5.92   55.12   49.97   94.23   19.59
Код
a, b: 10 40
    3.33    5.92   12.86   34.06   38.16   10.09   38.57   19.59   68.63   99.59
   67.18   80.94   66.32   92.11   92.96   56.07   48.42   55.12   49.97   94.23
1
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
20.06.2016, 15:36  [ТС] 9
Получается такой результат. Но какое значение не вводи, результат не изменяется.
Миниатюры
Напечатать элементы файла f в следующем порядке: сначала – все числа, меньшие a, затем – все числа из отрезка  
0
Модератор
Эксперт по электронике
8291 / 4194 / 1597
Регистрация: 01.02.2015
Сообщений: 13,040
Записей в блоге: 4
20.06.2016, 15:42 10
А к какому из интервалов принадлежат эти числа
1. меньше а
2. от а до b
3. больше b
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7520 / 4384 / 2781
Регистрация: 22.11.2013
Сообщений: 12,546
Записей в блоге: 1
20.06.2016, 17:10 11
Цитата Сообщение от Tuychin Посмотреть сообщение
какое значение не вводи, результат не изменяется
А почему вы считаете, что для показанных вами чисел и для интервала [1; 2] что-то должно меняться?
1
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
21.06.2016, 11:46  [ТС] 12
Цитата Сообщение от bormant Посмотреть сообщение
А почему вы считаете, что для показанных вами чисел и для интервала [1; 2] что-то должно меняться?
Я вводил и другие интервалы, но значение так же остаются не именными. И нету распределение 1. меньше а. 2. от а до b. 3. больше b.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7520 / 4384 / 2781
Регистрация: 22.11.2013
Сообщений: 12,546
Записей в блоге: 1
21.06.2016, 11:54 13
Цитата Сообщение от Tuychin Посмотреть сообщение
вводил и другие интервалы
какие? Для интервала 1e-65 1e-46 вывод изменится, вы этот интервал попробовали? Вы на свои числа внимательно посмотрели? Понимаете, что означает "E-86"? См. https://ru.wikipedia.org/wiki/... 1%81%D1%8C
Разберитесь в вопросе, подготовьте более наглядный файл, например, 20 псевдослучайных чисел от 0 до 100:
Pascal
1
2
3
4
5
6
7
8
var
  f: file of Real; r: Real; i: Integer;
begin
  Randomize;
  Assign(f,'input.dat'); Rewrite(f);
  for i:=1 to 20 do begin r:=100*Random; Write(f,r); Write(r:8:2); end;
  Close(f);
end.
Цитата Сообщение от Tuychin Посмотреть сообщение
нету распределение 1. меньше а. 2. от а до b. 3. больше b.
Есть, см. мой пример выше. Вам нужно эти метки вывести? Не вопрос, добавьте:
-- после строки 12: WriteLn('< ',a,':');
-- после строки 22: WriteLn('[',a,';',b,']:');
-- после строки 25: WriteLn('> ',b,':');
1
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 17
21.06.2016, 13:11  [ТС] 14
bormant, большое спасибо, очень помогли.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2016, 13:11
Помогаю со студенческими работами здесь

Записать в файл все нечетные числа из [1; 99]. Затем вывести все элементы данного файла, начиная с 15
Записать в файл все нечетные числа из . Затем вывести все элементы данного файла, начиная с 15

Записать в массив сначала все положительные, затем все отрицательные числа и нули
Пожалуйста докажите код выделенный в комментарии. Задание:&quot;Дан массив вещественных чисел ,...

Записать в массив сначала все положительные числа, затем все остальные, сохраняя порядок
Привет.Помогите решить данную задачу;( Дан массив из N целых чисел. Записать в этот же массив...

Вывести все нулевые элементы, затем все положительные элементы в порядке возрастания, затем все отрицательн
Дано натуральное число N и массив из N элементов. Составить программу, позволяющую выполнить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru