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

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

08.12.2018, 17:03. Показов 5463. Ответов 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
7818 / 4637 / 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
7818 / 4637 / 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
7818 / 4637 / 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
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru