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

В файле найти первое положительное и последнее отрицательное числа

13.01.2016, 16:19. Показов 2459. Ответов 1
Метки нет (Все метки)

Есть программа, которая в файле находит первое положительное и последнее отрицательное числа и оставляет в файле числа, находящиеся между ними.

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
Program JOB;
uses crt;
Var n,i,pol,ipl,otr,iot,k,j:integer;
    f:file of integer;
Begin
Assign(f,'f.dat');
ReWrite(f);
Writeln('Введите положительные и отрицательные целые числа, окончание ввода 0:');
Repeat
ReadLn(n);
if n<>0 then write(f,n)
Until n=0;
clrscr;
seek(f,0);
WriteLn('Числа, записанные в файле:');
ipl:=-1;
iot:=-1;
for i:=0 to filesize(f)-1 Do
 Begin
  Read(f,n);
  Write(n,' ');
  if (n>0)and(ipl=-1) then
   begin
    pol:=n;
    ipl:=i;
   end
  else  if n<0 then
   begin
    otr:=n;
    iot:=i;
   end
End;
Writeln;
k:=0;
if ipl=-1 then
 begin
  k:=1;
  Writeln('В файле нет положительных чисел')
 end
else WriteLn('Первое положительное=',pol,' номер позиции=',ipl);
if iot=-1 then
 begin
  k:=1;
  Writeln('В файле нет отрицательных чисел')
 end
else WriteLn('Последнее отрицательное=',otr,' номер позиции=',iot);
if abs(ipl-iot)=1 then
 begin
  k:=1;
  writeln('Между первым положительным и последним отрицательным нет чисел');
 end;
if k=1 then close(f)
else
 begin
  seek(f,iot);//удалим начиная с последнего отрицательного
  truncate(f);
  seek(f,0);//будем удалять начало
  k:=filesize(f)-ipl-1;{сколько останется}
  j:=filesize(f)-k;{сколько удалить}
  for i:=1 to k do{переставим все что после первого положительного в начало}
   begin
    seek(f,ipl+i);
    read(f,n);
    seek(f,i-1);
    write(f,n);
   end;
  seek(f,filesize(f)-j);{все остальное отрежем}
  truncate(f);
  writeln('Остались числа:');
  seek(f,0);
  While not EOF(f) Do
   begin
    Read(f,n);
    Write(n,' ');
   end;
  close(f);
 end;
end.
Её нужно переделать под это задание:
Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить первое по порядку отрицательное и последнее положительное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Оставить в файле только числа, находящиеся между ними.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2016, 16:19
Ответы с готовыми решениями:

Определить первое по порядку положительное и последнее отрицательное числа и их позиции в файле
Вот задание:Создать типизированный файл целых чисел. Записать в него с консоли последовательность...

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

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

Найти минимальное положительное и максимальное отрицательное числа, не входящие в вектор
В целочисленном векторе найти минимальное положительное и максимальное отрицательное числа, не...

1
Почетный модератор
64270 / 47569 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
13.01.2016, 16:42 2
Цитата Сообщение от kag3897 Посмотреть сообщение
находит первое положительное и последнее отрицательное числа
Цитата Сообщение от kag3897 Посмотреть сообщение
Определить первое по порядку отрицательное и последнее положительное числа
Что, поменять знаки у искомых чисел и то ума нет?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2016, 16:42
Помогаю со студенческими работами здесь

Найти минимальное положительное и максимальное отрицательное числа, не входящие в вектор
Задание: в целочисленном векторе vector найти минимальное положительное и максимальное...

Найти в массиве первое положительное число после минимального числа
Объявить массив из 150 элементов со случайными числами в диапазоне от -8 до 10.Найти первое...

Вводятся числа. Конец ввода 0. Найти произведение отрицательных двузначных чисел больших, чем первое отрицательное число
uses crt; var a,n,q,s:integer; begin clrscr; writeln('Введите целые числа:'); s:=1;q:=0;...

Типизированные файлы: Поменять местами последнее отрицательное число в файле с четвёртым по счёту числом
4)Создать типизированный файл, куда записать n вещественных чисел. Поменять местами последнее...


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

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

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