Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для kempers
0 / 0 / 0
Регистрация: 08.12.2008
Сообщений: 9

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

25.02.2009, 14:07. Показов 1593. Ответов 8
Метки нет (Все метки)

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

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

Спасиб за ранее =)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.02.2009, 14:07
Ответы с готовыми решениями:

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

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

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

8
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.02.2009, 19:49
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
uses crt;
const n=20;{размер компоненты}
      mmax=50;{максимальное количество компонент}
type Tmas=array[1..n]of integer;{тип компонент}
var f1,f2:file of Tmas;{типизированные файлы типа компонент}
    a:array[0..mmax] of Tmas;{массив компонент}
    b:Tmas;{перменная типа компонент}
    m:byte;{количество компонент}
    i,j,k,l:byte;{счетчики циклов}
    min,max,x:integer;{минимум, максимум и буфер при сортировке обменом}
    imin,imax,r,rmin,irmin:byte;{номер мин., макс. в массиве, расстояние между ними, минимальное расстояние, номер компоненты с мин. расстоянием}
begin
clrscr;
randomize;
assign(f1,'file1.dat');
rewrite(f1);
assign(f2,'file2.dat');
rewrite(f2);
repeat
write('Vvedite kolichestvo komponent m=');
readln(m);
until (m>0)and(m<=mmax);
for i:=0 to m-1 do
   begin
    for j:=1 to n do
    a[i][j]:=random(50);
    write(f1,a[i]);
   end;
reset(f1);
rmin:=n;irmin:=0;i:=0;
while not eof(f1) do
  begin
   read(f1,a[i]);{читаем очередную компоненту}
   min:=a[i][1];max:=a[i][1];imin:=1;imax:=1;
   for j:=1 to n do
   if a[i][j]<min then
     begin
       min:=a[i][j];{находим минимум}
       imin:=j;{его номер}
     end
   else if a[i][j]>max then
     begin
       max:=a[i][j];{максимум}
       imax:=j;{его номер}
     end;
   if imin<imax then{если мин раньше макс}
      begin
        for k:=imin+1 to imax-2 do{сортируем между ними}
        for l:=k+1 to imax-1 do
        if a[i][k]<a[i][l] then
          begin
           x:=a[i][k];
           a[i][k]:=a[i][l];
           a[i][l]:=x;
         end;
       end
   else  {если макс раньше мин}
       begin
        for k:=imax+1 to imin-2 do{сортируем}
        for l:=k+1 to imin-1 do
        if a[i][k]<a[i][l] then
          begin
           x:=a[i][k];
           a[i][k]:=a[i][l];
           a[i][l]:=x;
         end;
       end;
   r:=abs(imin-imax);{расстояние между мин и макс}
   if r<rmin then{если меньше мин}
     begin
      rmin:=r;{то это мин}
      irmin:=i;{номер компоненты}
     end;
   write(f2,a[i]);{записываем отсортированыые массивы в новый файл}
   inc(i);{увеличиваем счетчик}
 end;
reset(f2);{открываем для чтения}
for i:=irmin+1 to filesize(f2)-1 do {от следующей за нужной компоненты до конца}
  begin
    seek(f2,i);{становимся в позицию}
    read(f2,b);{запоминаем массив}
    seek(f2,i-1);{возвращаемся на шаг назад}
    write(f2,b);{записываем массив на новое место, в итоге произошел сдвиг вверх, нужный массив исчез}
  end;
seek(f2,filesize(f2)-1);{становимся в предпоследнюю строку }
truncate(f2);{обрезаем последнюю}
close(f1);{закроем прочитанные файлы}
close(f2);
writeln('Ishodnyj fail:');
reset(f1);{снова откроем и прочитаем}
while not eof(f1)do
  begin
   read(f1,b);
   for i:=1 to n do
   write(b[i],' ');
   writeln;
  end;
writeln('Izmenennyj fail:');
reset(f2);
while not eof(f2)do
  begin
   read(f2,b);
   for i:=1 to n do
   write(b[i],' ');
   writeln;
  end;
close(f1);
close(f2);
readln
end.
1
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 8
11.01.2010, 14:42
а нельзя ли ее решить с помощью процедур и без двумерных массивов?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.01.2010, 14:54
aggressor92, Это задача на типизированные файлы массивов, так в задании. Если задан файл числового типа, то конечно никакие массивы не нужны. Кстати двухмерных массивов в программе и нет. Просто имеется много одномерных массивов - компонент файла.
0
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 8
11.01.2010, 17:17
В данной лабораторной работе необходимо сделать типизированный файл, где каждой компонентой будет число, массив или матрица. Количество компонент заранее не определено, поэтому, при обработке файла необходимо использовать либо булевское значение функции EOF (конец файла), либо значение функции FILESIZE (размер файла).
Сами значения каждой компоненты можно задавать генератором случайных чисел.
Вывод исходного файла и файла с результатами сделать процедурой (и, если файлы одного типа, то одной процедурой).

это условия для решения задачи.
и в задаче сортировка одинаковая,если минимальное раньше максимального и наоборот. Можно её как-нибудь укоротить?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.01.2010, 17:40
Цитата Сообщение от aggressor92 Посмотреть сообщение
где каждой компонентой будет число, массив или матрица
У Вас то конкретно какое задание?
0
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 8
11.01.2010, 18:02
Создать файл, где компонентой будет массив из N чисел. Определить минимальное и максимальное значение в каждой компоненте (массиве) и числа, находящиеся между ними, рассортировать по убыванию. После сортировки каждую компоненту записать в новый файл. Ту компоненту, где максимальное и минимальное значения находятся наиболее близко друг к другу, удалить из файла.


как я понял, это массив из чисел.
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.01.2010, 19:12
aggressor92, Это типизированный файл массивов.
Pascal
1
2
3
type 
mass=array[1..100] of integer;
typefile=file of mass;
0
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 8
11.01.2010, 20:18
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure Vivod(var f: Tmas);
var
  a: Tmas;
  c, i: integer;
begin
  Reset(f1);
  c := 1;
  while (not (Eof(f1))) do
  begin
    read(f1,a);
    write(c:3);
    for i:=1 to n do
      write(a[i]:3);
    inc(c);
writeln;
  end;
  Close(f1);
end;
я попробовал создать процедуру для вывода к программе. Не могли бы Вы изменить свою программу с помощью похожей процедуры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2010, 20:18
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru