Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100

Вывести на экран вначале отрицательные, а затем неотрицательные члены последовательности

17.01.2015, 13:25. Показов 1301. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать рекурсивную подпрограмму, вводящую из файла последовательность
вещественных чисел, которая выведет на экран вначале отрицательные,а затем
неотрицательные члены последовательности(в любом порядке).
Ограничение массивы не использовать.
Ниже мой код, который неправильный в смысле оформления, мне его надо сделать более компактным, не надо все время вводить и выводить, помогите пожалуйста кто сможет.
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
program PROG10;
uses crt;
type
  TFile = File of real;
 
procedure CreateFile(var f : TFile; s : string);
Var 
  i, n : integer;
  a : real;
Begin
  assign(f,s);
  rewrite(f);
  write('Количество компонентов файла : '); 
  readln(n);
  writeln('Компоненты файла ',s,' :');
  randomize;
  for i := 1 to n do 
  begin
    a := random(61) - 30 + random;
    write(f,a);
    write(a:7:2);
  end;
  writeln;
  close(f);
End;
 
procedure NegPosElem(var f : TFile; s : string; i : integer);
Var 
  a : real;
Begin
  assign(f, s);
  reset(f);  
  seek(f,i);
  If EOF(f) then begin
  close(f); 
  exit
end 
else 
  begin
    read(f, a);
    if a < 0 then begin
    close(f);
    write(a:7:2);
    NegPosElem(f,s,i+1);
  end 
  else 
    begin
      close(f);
      NegPosElem(f,s,i+1);
       write(a:7:2);
    end;
  end;
end;
Var 
  s : string;
  f : TFile;
Begin
  clrscr;
  write('Имя файла :');
  s := 'f1.dat'; 
  writeln; //readln(s);
  CreateFile(f,s);
  NegPosElem(f,s,0);
  readln;
End.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2015, 13:25
Ответы с готовыми решениями:

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

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

Преобразовать массив, расположив вначале его отрицательные, а затем неотрицательные элементы...
Ребята помогите решить пожалуйста,очень нужно Преобразовать массив X, расположив вначале его отрицательные, а затем неотрицательные...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
17.01.2015, 13:53
Лучший ответ Сообщение было отмечено FIDES как решение

Решение

Этого вполне достаточно:
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
program PROG10;
// uses crt;
type
  TFile = File of real;
 
procedure CreateFile(var f : TFile; s : string);
Var 
  i, n : integer;
  a : real;
Begin
  assign(f,s);
  rewrite(f);
  write('Количество компонентов файла : '); 
  readln(n);
  writeln('Компоненты файла ',s,' :');
  randomize;
  for i := 1 to n do 
  begin
    a := random(61) - 30 + random;
    write(f,a);
    write(a:7:2);
  end;
  writeln;
  close(f);
End;
 
procedure NegPosElem(var f : TFile);
Var 
  a : real;
Begin
  if EOF(f) then exit;
  
  read(f, a);
  if a < 0 then write(a:7:2);
  NegPosElem(f);
  if a >= 0 then write(a:7:2);
end;
 
Var 
  s : string;
  f : TFile;
Begin
  // clrscr;
  write('Имя файла :');
  s := 'f1.dat'; 
  writeln; //readln(s);
  CreateFile(f,s);
  assign(f, s);
  reset(f);
  NegPosElem(f);
  close(f);
  // readln;
End.
, чтобы вывести сначала отрицательные, а потом - неотрицательные...
0
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100
17.01.2015, 17:19  [ТС]
А когда я делаю тест с числом 10, то выводит же неподходящий нам ответ?! Вот посмотрите:
Миниатюры
Вывести на экран вначале отрицательные, а затем неотрицательные члены последовательности  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
17.01.2015, 17:23
Чем же это он неподходящий? Все отрицательные компоненты выводятся перед неотрицательными, что не так?
1
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100
17.01.2015, 17:28  [ТС]
Хорошо, все разобрался вроде, огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2015, 17:28
Помогаю со студенческими работами здесь

Вывести на экран сначала неотрицательные элементы массива, затем отрицательные
дан массив. вывести на экран сначала его неотрицательные элементы, затем отрицательные.

Вывести на экран сначала неотрицательные элементы массива, затем отрицательные
1)Дан массив. Вывести на экран сначала его неотрицательные элементы, затем отрицательные 2)Дан массив. Вывести на экран сначала его...

Преобразовать заданный массив, расположив вначале его отрицательные, а затем неотрицательные элементы
Создать класс «вектор» для описания одномерного массива и произвести с ним следующие операции: Преобразовать массив X, расположив вначале...

Дан массив. Вывести на экран сначала его неотрицательные элементы, затем отрицательные
1)Дан массив. Вывести на экран сначала его неотрицательные элементы, затем отрицательные. Помогите плиззз

Дан массив. Вывести на экран сначала его неотрицательные элементы, затем отрицательные
Дан массив. Вывести на экран сначала его неотрицательные элементы, затем отрицательные.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru