Старичок :)
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
1

Создать типизированный файл целых чисел

25.09.2011, 19:05. Показов 7777. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Ребят, есть такое задание:

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить вторые по значению минимальное и максимальное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между ними.

Помогите пожалуйста.

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
program s;
uses crt;
var f:file of integer;
i,max,min, max_p,min_p:integer;
begin clrscr;
assign(f,'C:\TP\wer.dat');
rewrite(f);
 
write('vvedite pervoe chislo ') ;
readln(i);
if (i=0) then
begin
writeln('file ne sozdan');
erase(f);
exit;
end
else
write(f,i);
 
repeat
write('sled chislo ');
readln(i);
if (i<>0) then
write(f,i)
else break
until(i=0);
 
reset(f);
read(f,i);
 
max:=i;
min:=i;
max_p:=0;
min_p:=0;
 
reset(f);
writeln;
 
while not(EOF(f)) do
begin
 
read(f,i);
write(i:5);
 
if (i>max) then
begin
max:=i;
max_p:=filepos(f);
end;
 
if (i<min) then
begin
min:=i;
min_p:=filepos(f);
end;
 
end;
 
writeln('max=',max:3);
 
writeln('max_p=',max_p:3);
writeln('min=',min:3);
writeln('min_p=',min_p:3); 
close(f);
readln;
end.
Что нужно сделать или что исправить, чтобы она ещё выполняла условие ? Определить вторые по значению минимальное и максимальное числа и их позиции в файле. Или свой вариант предложите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2011, 19:05
Ответы с готовыми решениями:

Создать типизированный файл и записать в него 5 одинаковых целых чисел
1. Дан текстовый файл, состоящий из первых десяти натуральных чисел. Вывести на экран первые пять. ...

Создать типизированный файл вещественных чисел
создать типизированный файл, вещественных чисел. записать в 5 поз, число 0, а в коце файла 100 ...

Создать типизированный файл из К случайных действительных чисел из диапазона от 0 до 100
Дано: натуральное число К. Требуется: создать типизированный файл из К случайных действительных...

Дан файл вещественных чисел Создать файл целых чисел, содержащий номера локальных максимумов исходного файла
2-File. Дан файл вещественных чисел. Создать файл целых чисел, содержащий номера всех локальных...

1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.09.2011, 15:36 2
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
uses crt;
var f:file of integer;
    a,b,mx1,mx2,mn1,mn2,imx1,imx2,imn1,imn2,i,k1,k2,k:integer;
begin
//создание файла
assign(f,'file');
rewrite(f);
writeln('Введите в файл целые числа, окончание ввода 0:');
repeat
read(a);
if a<>0 then write(f,a);
until a=0;
clrscr;
//вывод на экран
writeln('Содержание исходного файла:');
reset(f);
//если нет 2 элементов
if filesize(f)<2 then
 begin
  writeln('Вы ввели менее двух чисел, поиск не возможен');
  close(f);
  exit;
 end;
 //если есть
while not eof(f) do
 begin
  read(f,a);
  write(a,' ');
 end;
writeln;
seek(f,0); //в начало файла
read(f,a);//первое число
seek(f,1);
read(f,b); //второе
if a>b then //выбираем первые мин и макс
 begin
  mx1:=a;
  imx1:=0;
  mx2:=b;
  imx2:=1;
  mn1:=b;
  imn1:=1;
  mn2:=a;
  imn2:=0;
 end
else
 begin
  mx1:=b;
  imx1:=1;
  mx2:=a;
  imx2:=0;
  mn1:=a;
  imn1:=0;
  mn2:=b;
  imn2:=1;
 end;
 //если только 2 элемента, удалять нечего
if filesize(f)=2 then
 begin
  writeln('Второе максимальное=',mx2,' его позиция=',imx2);
  writeln('Второе минимальное =',mn2,' его позиция=',imn2);
  writeln('Элементов для удаления нет');
  close(f);
  exit;
 end;
// если больше
for i:=2 to filesize(f)-1 do //от третьего до последнего
 begin
  seek(f,i);
  read(f,a);
  if a>mx1 then //первый макс
   begin
    imx2:=imx1;//старый первый удет вторым
    mx2:=mx1;
    imx1:=i;
    mx1:=a; //первй новый
   end
  else if a>mx2 then//если второй
   begin
    imx2:=i;
    mx2:=a;//он сменится, первый нет
   end;
  if a<mn1 then  //так же с минимальными
   begin
    imn2:=imn1;
    mn2:=mn1;
    imn1:=i;
    mn1:=a;
   end
  else if a<mn2 then
   begin
    imn2:=i;
    mn2:=a;
   end;
 end;
writeln('Первый максимальный=',mx1,' второй=',mx2,' его индекс=',imx2);
writeln('Первый минимальный =',mn1,' второй=',mn2,' его индекс=',imn2);
if imx2<imn2 then //если макс меньше, поменяем
 begin
  a:=imx2;
  imx2:=imn2;
  imn2:=a;
 end;
writeln('Удаляем элементы с номерами ',imn2+2,'...',imx2);//номер на 1 больше индекса
if imx2-imx1<=2 then //если они рядом
 begin
  write('Элементов для удаления нет');
  close(f);
  exit;
 end;
k:=0;
for i:=imx2 to filesize(f)-1 do//от 2 макс до конца
 begin
  seek(f,i);
  read(f,a);
  k:=k+1;
  seek(f,imn2+k);//все поднимем вверх за 2 мин
  write(f,a);
 end;
seek(f,filesize(f)-(imx2-imn2-1));//отступаем от конца на кол. удаляемых элементов
truncate(f);//обрезаем пустое
seek(f,0); //вывод результата
writeln('Удаление элементов между вторым минимальным и вторым максимальным:');
while not eof(f) do
 begin
  read(f,a);
  write(a,' ');
 end;
close(f);
end.
3
26.09.2011, 15:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2011, 15:36
Помогаю со студенческими работами здесь

Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке
Пожалуйста, помогите решить задачу в PascalABC!!! Дан файл целых чисел. Создать новый файл,...

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

Создать файл целых чисел. Исключить из него указанную по номеру компоненту. Файл распечатать
Здравствуйте.Дано задание: Создать файл целых чисел. Исключить из него указанную по номеру...

Создать файл целых чисел и записать в него N первых положительных четных чисел
вот задача: Дано имя файла и целое число N (&gt; 1). Создать файл целых чисел с данным именем и...


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

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

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