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

Создать файл, где компонентой будет массив из N чисел.

11.02.2010, 11:06. Показов 1118. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать файл, где компонентой будет массив из N чисел. Определить минимальное и максимальное значение в каждой компоненте (массиве) и числа, находящиеся между ними, рассортировать по убыванию. После сортировки каждую компоненту записать в новый файл. Ту компоненту, где максимальное и минимальное значения находятся наиболее близко друг к другу, удалить из файла.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2010, 11:06
Ответы с готовыми решениями:

Создать файл, где компонентой будет массив из N чисел
Создать файл, где компонентой будет массив из N чисел. Преобразовать компоненты (массивы) в файле...

Создать файл, где компонентой будет массив из N чисел.
Создать файл, где компонентой будет массив из N чисел. Преобразовать компоненты (массивы) в файле...

Создать файл, где компонентой будет массив из N чисел.
2.Создать файл, где компонентой будет массив из N чисел. Все четные по номеру компоненты участвуют...

Создать файл, где компонентой будет массив из N чисел
Ребят помогите задачку на файлы решить Создать файл, где компонентой будет массив из N чисел....

1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.02.2010, 17:26 2
Лучший ответ Сообщение было отмечено 2106 как решение

Решение

Вот программа, все работает. Подумайте над вводом данных, нужно или руками делать или взять больше значения и вводить размер массивов порядка 15-20, а то часто мин и макс рядом или через 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
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
uses crt;
const nmax=100;
type mas=array[1..nmax] of integer;
     fail=file of mas;
procedure MaxMin(v:mas;n:byte; var imn,imx:byte);
var i:byte;
begin
imn:=1;imx:=1;
for i:=1 to n do {в каждой компоненте ищем номера макс и мин}
 begin
  if v[i]>v[imx] then imx:=i;
  if v[i]<v[imn] then imn:=i;
 end;
end;
{чтение файла}
procedure ReadFile(var t:fail;k:byte);
var x:mas;
    i:byte;
begin
reset(t);
while not eof(t) do
 begin
  read(t,x);
  for i:=1 to k do
  write(x[i]:2,' ');
  writeln;
 end;
close(t);
writeln;
write('Press Enter...');
readln
end;
var f,g:fail;
    a:mas;
    m,n,i,j,imn,imx,k:byte;
    x,mn:integer;
begin
clrscr;
randomize;
assign(f,'filef');
rewrite(f);
assign(g,'fileg');
rewrite(g);
repeat
write('Сколько компонент записать в файл(до ',nmax,') m=');
readln(m);
until m in [1..nmax];
repeat
write('Размер компонет-массивов(до ',nmax,') n=');
readln(n);
until n in [1..nmax];
for i:=1 to m do
 begin
  for j:=1 to n do
  a[j]:=random(20);
  write(f,a);
 end;
writeln('Содержание исходного файла F:');
ReadFile(f,n);{читаем файл}
{открываем}
reset(f);
for i:=0 to filesize(f)-1 do
 begin
  seek(f,i);
  read(f,a);
  MaxMin(a,n,imn,imx); {в каждой компоненте ищем номера макс и мин}
  if imn<imx then {сортируем между ними}
   begin
    for k:=imn+1 to imx-2 do
    for j:=k+1 to imx-1 do
    if a[k]<a[j] then
     begin
      x:=a[k];
      a[k]:=a[j];
      a[j]:=x;
     end;
   end
  else if imx<imn then
   begin
    for k:=imx+1 to imn-2 do
    for j:=k+1 to imn-1 do
    if a[k]<a[j] then
     begin
      x:=a[k];
      a[k]:=a[j];
      a[j]:=x;
     end;
   end;
  {записываем измененные в новый файл}
  write(g,a);
 end;
close(f);
writeln('Содержание исходного файла G:');
ReadFile(g,n);{читаем файл}
reset(g);
k:=0;mn:=n;{ищем номер компоненты для удаления}
while not eof(g) do
 begin
  read(g,a);
  MaxMin(a,n,imn,imx);
  if abs(imn-imx)<mn then
   begin
    mn:=abs(imn-imx);
    k:=i;
   end;
 end;
close(g);
writeln('Наиболее близко мин и макс в компоненте ',k+1,'=',mn);
reset(g);
seek(g,k);
if k=filesize(g)-1 then truncate(g)
else
 begin
  for j:=k to filesize(g)-2 do{сдвигаем к нему хвост файла}
   begin
    seek(g,j+1);
    read(g,a);
    seek(g,j);
    write(g,a);
   end;
  seek(g,filesize(g)-1);
  truncate(g);{обрезаем файл}
 end;
close(g);
writeln('Файл после удаления компоненты:');
ReadFile(g,n);
end.
0
11.02.2010, 17:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2010, 17:26
Помогаю со студенческими работами здесь

Создать файл, где каждой компонентой будет массив из 6 чисел
Создать файл, где каждой компонентой будет массив из 6 чисел. Определить минимальное значение в...

Создать файл, где компонентой будет массив из N чисел. Переставить местами числа в каждой компоненте попарно
Тема - файлы Создать файл, где компонентой будет массив из N чисел. Переставить...

Создать файл, где компонентой будет матрица
В данной лабораторной работе необходимо сделать типизированный файл, где каждой компонентой будет...

Создать файл, где компонентой будет матрица из N строк и N столбцов (квадратная)....
В данной лабораторной работе необходимо сделать типизированный файл, где каждой компонентой будет...


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

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

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