Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/26: Рейтинг темы: голосов - 26, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 25.09.2016
Сообщений: 160

Файлы произвольного доступа

08.12.2018, 17:03. Показов 5384. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, помогите, пожалуйста.
В столбцах матрицы произвольного размера, размещённой во внешнем файле, провести перестановку ее элементов таким образом, чтобы максимальный элемент каждого столбца оказался на главной диагонали.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2018, 17:03
Ответы с готовыми решениями:

Файлы прямого доступа
Используя технологию процедурного программирования, разработать программу обработки типизированных файлов с числом записей не менее 5,...

Типизированные файлы прямого доступа
помогите, пожалуйста, написать программу: Удлинить файл, вставляя после каждой компоненты новую, равную ей. Т.е, если исходный файл был...

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

24
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
08.12.2018, 23:25
Лучший ответ Сообщение было отмечено furymaxim как решение

Решение

Студворк — интернет-сервис помощи студентам
Не смутило?
Pascal
7
   f:text;
Добавлено через 21 секунду
Пусть будет так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const
  a: array [1..5,1..6] of Integer = (
    (7, 5, 11, 4, 5, 3),
    (8, 9, 10, 14, 5, 2),
    (-2, 11, 6, 2, 2, 1),
    (4, 14, 13, 5, 1, 7),
    (6, 7, 1, 14, 6, 9));
 var
   f: file of Integer;
 begin
   Assign(f,'final.bin');
   Rewrite(f);
   Write(f,High(a),High(a[Low(a)]));
   for var i:=Low(a) to High(a) do
     for var j:=Low(a[Low(a)]) to High(a[Low(a)]) do
       Write(f,a[i,j]);
   Close(f);
end.
Добавлено через 2 минуты
Или так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  f: file of Integer;
  n, m, t: Integer;  
begin
  Assign(f,'final.bin');
  Rewrite(f);
  Read(m,n);
  Write(f,m,n);
  for var i:=1 to m do for var j:=1 to n do begin
    Read(t); Write(f,t);
  end;
  Close(f);
end.
1
1 / 1 / 0
Регистрация: 25.09.2016
Сообщений: 160
08.12.2018, 23:31  [ТС]
Точно, f:text; , просмотрел, а как проще всего открыть bin файл для проверки, что всё сработало? Или его никак не открыть,чтобы самому посмотреть содержимое или для того, чтобы показать преподавателю? Даже если и так, то не критично, раз ошибок нет, значит всё работает корректно.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
08.12.2018, 23:36
Ну и в основной программке не помешает добавить вывод на экран содержимого файла.
В варианте без промежуточного массива это могло выглядеть так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
const W=4;
type FileInteger = file of Integer;
 
procedure fWrite(var f: FileInteger);
var m, n, t: Integer;
begin
  Reset(f); Read(f,m,n);
  for var i:=1 to m do begin
    for var j:=1 to n do begin
      Read(f,t); Write(' ',t:W);
    end; WriteLn;
  end;
end;
Добавлено через 54 секунды
Ну а поскольку массив уже все равно есть, то можно его и вывести до преобразования и после.

Добавлено через 1 минуту
Возможно, самое время почитать про динамические массивы.
1
1 / 1 / 0
Регистрация: 25.09.2016
Сообщений: 160
08.12.2018, 23:56  [ТС]
Огромнейшее спасибо Вам за помощь, добавил ввод и вывод исходного массива. Последняя работа была с Паскалем.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
09.12.2018, 00:26
В сухом остатке могло получиться что-то вроде такого:
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
const W=4;
type TMatrix = array of array of Integer;
 
function MaxIdxByCol(const a: TMatrix; j: Integer): Integer;
var i: Integer;
begin
  Result:=0; for i:=1 to High(a) do if a[Result][j]<a[i][j] then Result:=i;
end;
 
procedure mWrite(const a: TMatrix; p: String);
begin
  WriteLn(p);
  for var i:=0 to High(a) do begin
    for var j:=0 to High(a[i]) do Write(' ',a[i][j]:W); WriteLn;
  end;
end;
 
var
  m, n: Integer;
  a: TMatrix;
  f: file of Integer;
begin
  Assign(f,'final.bin');
  Reset(f);
  Read(f,m,n); SetLength(a,m); for var i:=0 to m-1 do SetLength(a[i],n);
  for var i:=0 to m-1 do for var j:=0 to n-1 do Read(f,a[i][j]);
 
  mWrite(a,'A =');
  for var i:=0 to Min(m,n)-1 do Swap(a[i][i],a[MaxIdxByCol(a,i)][i]);
  mWrite(a,'A''=');
 
  Reset(f);
  Write(f,m,n);
  for var i:=0 to m-1 do for var j:=0 to n-1 do Write(f,a[i,j]);
  Close(f);
end.
Добавлено через 15 минут
В Free Pascal задание размера матрицы было бы проще:
Pascal
25
  Read(f,m,n); SetLength(a,m,n);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2018, 00:26
Помогаю со студенческими работами здесь

Типизированные файлы прямого доступа.
Здравствуйте. Добрые люди откликнитесь на просьбу=) Задача. Поменять местами первую и последнюю компоненты

Заполнить файлы последовательного доступа f целыми числами
помогите решить пожалуйста задачу: Заполнить файлы последовательного доступа f целыми числами, получ. с помощью генератора случайных...

Записи. Файлы прямого доступа. Вывести абитуриентов, набравших меньше 12 баллов
Составить файл с именем ABITUR, состоящий из данных по сдаче экзаменов абитуриентами. Указать для каждого абитуриента его код и оценки по...

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

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


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru