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

Типизированные файлы. Найти сумму компонент, стоящих между минимальной и максимальной.

03.05.2010, 13:02. Показов 1925. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста с задачей: Задан числовой файл F . Найти сумму компонент, стоящих между минимальной и максимальной. Заменить этой суммой все элементы из которых она сформирована (элементы между максимумом и минимумом). Файл вывести как до, так и после преобразования.
Нужен в паскале, блок схему приложил
Миниатюры
Типизированные файлы. Найти сумму компонент, стоящих между минимальной и максимальной.  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2010, 13:02
Ответы с готовыми решениями:

Найти сумму компонент, расположенных между максимальной и минимальной компонентами
Дан файл вещественных чисел. Найти сумму компонент, расположенных между максимальной и минимальной...

Найти сумму компонент, расположенных между максимальной и минимальной компонентами
Пожалуйста, помогите решить задание с файлом. Дан файл вещественных чисел. Найти сумму компонент,...

«Типизированные файлы».найти количество компонент стоящих между первым отрицательным и последним отрицательным значением.
В файле, содержащем целые числа, найти количество компонент стоящих между первым отрицательным и...

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

6
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 4
03.05.2010, 14:39  [ТС] 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
program ABC;
var b,Buf,Imin,Imax,Max,Min,i,k,S:integer;
f:file of integer;
begin
assign(f,'f.dat');
writeLn('введите первую компоненту файла f ');
rewrite(f);
readLn(b);
i:=1;
while b<>10 do
begin
write(f,b);
inc(i);
writeLn('введите ',i,'-ую компоненту файла f');
readLn(b);
end;
reset(f);
writeLn('файл f до изменения:');
while not EOF(f) do
begin
read(f,b);
write(b:5);
end;
writeLn;
reset(f);
Imin:=0;
Imax:=0;
i:=0;
Min:=buf;
Max:=buf;
while not eof(f) do
begin
read(f,buf);
if buf>Max then
begin
Max:=buf;
Imax:=i;
end
else
begin
if buf<Min then
begin
Min:=buf;
Imin:=i;
end;
end;
i:=i+1;
end;
if abs(Imax-Imin)>1 then
begin
If Imax>Imin then
i:=Imin+1
else
begin
i:=Imax+1;
end;
seek(f,i);
k:=i;
S:=0;
While k<i+abs(Imax-Imin)-1 do
begin
read(f,buf);
S:=S+buf;
k:=k+1;
end;
seek(f,i);
k:=1;
While k<i+abs(Imax-Imin)-1 do
begin
write(f,S);
k:=k+1;
end;
end;
reset(f);
writeLn('файл f после изменения:');
while not EOF(f) do
begin
read(f,b);
write(b:5);
end;
writeLn;
close(f);
end.
Помогите исправить ошибки пожалуйста
0
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
03.05.2010, 19:04 3
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
program ABC;
uses crt;
var b,Buf,Imin,Imax,Max,Min,i,k1,k2,S:integer;
    f:file of integer;
begin
clrscr;
assign(f,'f.dat');
rewrite(f);
writeLn('введите 10 компонент в файл f ');
for i:=1 to 10 do
 begin
  readLn(b);
  write(f,b);
 end;
clrscr;
reset(f);
writeLn('файл f до изменения:');
read(f,min);{читаем первое число, оно пока мин и макс}
write(min:5);
max:=min;
imin:=0;
imax:=0;{их индекс=0}
for i:=1 to filesize(f)-1 do{читаем остальные}
 begin
  read(f,b);
  write(b:5);
  if b>max then
   begin
    max:=b;
    imax:=i;{индекс макс}
   end;
  if b<min then
   begin
    min:=b;
    imin:=i;{мин}
   end;
 end;
writeLn;
close(f);
reset(f);
if imin<imax then{уточням кто за кем}
 begin
  k1:=imin;
  k2:=imax;
 end
else
 begin
  k1:=imax;
  k2:=imin
 end;
s:=0;
for i:=k1+1 to k2-1 do{между индексами }
 begin
  seek(f,i);
  read(f,b);
  s:=s+b;{считаем сумму}
 end;
close(f);
writeln('Сумма=',s);
reset(f);
for i:=k1+1 to k2-1 do{между индексами}
 begin
  seek(f,i);
  write(f,s);{вставляем сумму}
 end;
close(f);
reset(f);
writeLn('файл f после изменения:');
while not EOF(f) do
 begin
  read(f,b);
  write(b:5);
 end;
readln;
close(f);
end.
1
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 4
03.05.2010, 20:27  [ТС] 4
А если не из 10 компонентов, а чтобы я сама могла выбрать кол-во компнентов, какие строки на что нужно заменить?

Добавлено через 6 минут
Pascal
1
2
3
write('Êîëè÷åñòâî êîìïîíåíò ôàéëîâ n=');
readln(n);
for i:=1 to n do
Так ведь?
0
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
03.05.2010, 21:19 5
Да, можно так, а можно как у Вас было, до определенного значения.
0
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 10
04.03.2011, 22:03 6
Что значит строка write(min:5);? Откуда пятерка взялась?
0
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
05.03.2011, 11:30 7
Выделено 5 позиций в строке под число.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2011, 11:30
Помогаю со студенческими работами здесь

Найти сумму компонент, расположенных межу максимальной и минимальной компонентами
Дан файл вещественных чисел. Найти сумму компонент, расположенных межу максимальной и минимальной...

Файлы прямого доступа. Найти сумму компонент, стоящих между минимальной и максимальной
Задан числовой файл F. Найти сумму компонент, стоящих между минимальной и максимальной. Записать в...

Найти сумму компонент, стоящих между минимальной и максимальной
Задан числовой файл F . Найти сумму компонент, стоящих между минимальной и максимальной. Заменить...

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


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

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

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