Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 09.04.2018
Сообщений: 21

Векторы с наибольшем модулем перенести в конец файла

26.01.2020, 20:40. Показов 1478. Ответов 2

Студворк — интернет-сервис помощи студентам
Есть вот такое задание - дан файл компоненты которого являются n мерные векторы. Векторы с наибольшем модулем перенести в конец файла.
Нужен код программы, буду очень благодарен.
вот такое должно быть начало кода:
Pascal
1
2
3
4
uses crt;
const n=5;
type vect=array[1..n]of integer;
f_v=file of vect;
Нужно чтобы с типизированными файлами только работал. Ниже код будет на такое задание, но нужно что то по проще, чтобы в коде был уже прописан путь файла и чтобы он в конце просто выводил сообщение об успешной сортировке или что то подобное.
Надеюсь на вашу помощь



Пример кода:
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
uses crt;
type vec=array of integer;//вектор
     mtr=array of vec; //массив векторов=матрица
//чтение файла
procedure read_file(var f:text;var s:string;var a:mtr;var m,n:integer);
var st:string;
    x,i,j:integer;
begin
writeln('Введите имя файла для чтения');
readln(s);
assign(f,s);
{$I-}
reset(f);
{$I+}
if IOResult<> 0 then
 begin
  writeln('Файл не найден');
  readln;
  halt;
 end;
//подсчитаем количество строк(векторов) в файле
m:=0;
while not seekeof(f)do
 begin
  readln(f,st);
  m:=m+1;
 end;
//подсчитаем количество элементов в векторах, все вектора одного размера
reset(f);
n:=0;
while not eoln(f) do
 begin
  read(f,x);
  n:=n+1;
 end;
//прочитаем все вектора в матрицу
reset(f);
setlength(a,m,n);
for i:=0 to m-1 do
for j:=0 to n-1 do
read(f,a[i,j]);
close(f);
end;
//функция нахождения максимального по модулю в векторе
function max_vec(v:vec;n:integer):integer;
var i,mx:integer;
begin
mx:=abs(v[0]);
for i:=1 to n-1 do
if abs(v[i])>mx then mx:=abs(v[i]);
max_vec:=mx;
end;
//сортировка векторов по максимальному
procedure sort_vec(var a:mtr;m,n:integer);
var i,j:integer;
    x:vec;
begin
for i:=0 to m-2 do
for j:=i+1 to m-1 do
if max_vec(a[i],n)>max_vec(a[j],n)then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
end;
//запись в новый файл
procedure write_file(a:mtr;m,n:integer;var f:text; var s:string);
var i,j:integer;
begin
writeln('Введите имя файла для записи');
readln(s);
assign(f,s);
rewrite(f);
for i:=0 to m-1 do
 begin
  for j:=0 to n-1 do
  write(f,a[i,j]:5);
  writeln(f);
 end;
close(f);
end;
 
var f:text;
    a:mtr;
    m,n:integer;
    name1,name2:string;
begin
clrscr;
read_file(f,name1,a,m,n);
sort_vec(a,m,n);
write_file(a,m,n,f,name2);
writeln('Файл ',name1,' прочитан, вектора отсортированы и записаны в файл ',name2);
readln;
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2020, 20:40
Ответы с готовыми решениями:

Дан файл, компонентами которого являются n-мерные векторы. Векторы с наибольшим модулем перенести в конец файла
Дан файл, компонентами которого являются n-мерные векторы. Векторы с наибольшим модулем перенести в конец файла. Поясните пожалуйста что...

Дан файл, элементами которого являются n-мерные векторы. Векторы с наибольшим модулем перенести в конец файла
Вот имеется подобная программа (дали как пример...... в этой программе максимальные значения из каждого вектора копируются в конец этого...

Перенести данные из одного файла в конец другого
Подскажите как можно перенести данные из одного файла в конец другого. Исходный файл создается так: BinaryWriter sw = new...

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.01.2020, 07:21
Лучший ответ Сообщение было отмечено Konstantine863 как решение

Решение

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
uses crt;
const n=5;
type vect=array[1..n]of integer;
     f_v=file of vect;
function modul(a:vect):real;
var i:integer;
    m:real;
begin
m:=0;
for i:=1 to n do
m:=m+sqr(a[i]);
modul:=sqrt(m);
end;
var f:f_v;
    a,b:vect;
    k,i,j:integer;
begin
assign(f,'vectoty');
rewrite(f);
write('Сколько векторов записать в файл k=');
readln(k);
randomize;
for i:=1 to k do
 begin
  for j:=1 to n do
  a[j]:=random(20);
  write(f,a);
 end;
writeln('Исходный файл');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  for i:=1 to n do
  write(a[i]:3);
  writeln('   Модуль=',modul(a):0:2);
 end;
reset(f);
for i:=0 to filesize(f)-2 do
for j:=i+1 to filesize(f)-1 do
  begin
    seek(f,i);
    read(f,a);
    seek(f,j);
    read(f,b);
    if modul(a)>modul(b)then
      begin
       seek(f,i);
       write(f,b);
       seek(f,j);
       write(f,a);
      end;
   end;
writeln('Отсортированный файл');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  for i:=1 to n do
  write(a[i]:3);
  writeln('   Модуль=',modul(a):0:2);
 end;
close(f);
readln
end.
1
1 / 1 / 0
Регистрация: 09.04.2018
Сообщений: 21
29.01.2020, 11:14  [ТС]
Спасибо большое, то что нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2020, 11:14
Помогаю со студенческими работами здесь

Как в чётных строках файла перенести первое слово строки в конец строки?
Народ кто сможет? Задания на контрольную работу по дисциплине «Операционные системы UNIX» Решите поставленные задачи с помощью...

Вывести на экран номер строки файла с наибольшем средним арифметическим чисел
Текстовый файл содержашие целые числа. Вывести на экран номер строки с наибольшем средним арифметическим чисел!!!!!!!!!!!!!

Перенести конец строки.
var f: text; name,a,line: string; c: integer; begin writeln('введите имя исходного файла'); readln(name); assign(f, name); ...

Перенести первую букву в конец слова; перенести последнюю букву в начало слова
Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела. ...

Перенести k-ый элемент в конец массива
Динамическая память. Одномерный массив. Перенести k-ый элемент в конец массива (k-вводится с клавиатуры). Добавлено через 2 часа 17...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru