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

Типизированный файл массивов

03.02.2010, 07:33. Показов 3184. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В данной работе необходимо сделать типизированный файл, где каждой компонентой будет число, массив или матрица. Количество компонент заранее не определено, поэтому при обработке файла необходимо использовать либо булевское значение функции EOF (конец файла), либо значение функции FILESIZE (размер файла).
Сами значения каждой компоненты файла можно задавать генератором случайных чисел.
Вывод исходного файла и файла с результатами сделать процедурой (и, если файлы одного типа, то одной процедурой).
Сама задача: Создать файл, где компонентой будет массив из N чисел. Преобразовать компоненты (массивы) в файле так, чтобы нули, если они есть в массиве, встали в конец массива, при этом остальные числа остались в своей очередности. Преобразованную компоненту записать обратно на свое место в исходный файл. Затем компоненты без нулей удалить из файла.

ЗАРАНЕЕ СПАСИБО ЗА ПОМОЩЬ!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2010, 07:33
Ответы с готовыми решениями:

Программа, которая читает текстовый файл в типизированный файл
Нужно написать программу, которая читает текстовый файл в типизированный файл и печатает его содержание на экране Только вот не очень...

Создать типизированный файл целых чисел, скопировать во 2 файл из исходного записи, хранящие простые числа
создать типизированный файл целых чисел, скопировать во 2 файл из исходного записи, хранящие простые числа вот такая вот задачка %(

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

1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.02.2010, 10:43
Лучший ответ Сообщение было отмечено van777 как решение

Решение

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
uses crt;
const nmax=100;
type mas=array[1..nmax] of integer;//тип массивов-компонент файла
     fail=file of mas;//тип файла
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:fail;
    a,b:mas;
    m,n,i,j,k,p:byte;
    x:integer;
begin
clrscr;
randomize;
assign(f,'filef');
rewrite(f);
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(10);
  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);//читаем компоненты файла
  k:=0;
  for j:=1 to n do//идем по массиву
  if a[j]<>0 then//если не ноль
   begin
    k:=k+1;//считаем
    x:=a[j];//запоминаем
    for p:=j downto k+1 do//сдвигаем начало массива на 1 вправо, стираем элемент
    a[p]:=a[p-1];
    a[k]:=x;//ставим его вперед
   end;
  seek(f,i);
  write(f,a);//записываем измененную компоненту на то же место
 end;
close(f);
writeln('Файл после перестановки нулей в масивах:');
ReadFile(f,n);
reset(f);
k:=0;
while not eof(f) do
 begin
  read(f,a);
  if a[n]<>0 then k:=k+1;//считаем сколько раз последний элемент компонент не ноль
 end;
close(f);
reset(f);
if k=filesize(f)then//если все не ноли, то не будем удалять, так как и так ясно что все удалится
 begin
  write('Все компоненты удалены!');
  close(f);
 end
else if k=0 then//если все последние ноли
 begin
  write('Компонент для удаления нет!');//то ничего и не надо удалять
  close(f);
 end
else//иначе будем удалять
 begin
  k:=0;i:=0;//пока удалили ноль, начало файла
  while i<=filesize(f)-1 do//пока не конец файла
   begin
    seek(f,i);
    read(f,a);//читаем компоненту
    if a[n]<>0 then//если последний элемент не ноль
     begin
      k:=k+1;//считаем
      for j:=i to filesize(f)-2 do//сдвигаем к нему хвост файла, элемент исчезает
       begin
        seek(f,j+1);
        read(f,a);
        seek(f,j);
        write(f,a);
       end;
      end
     else i:=i+1;//иначе идем вперед
   end;
  seek(f,filesize(f)-k);//становимся в позицию перед пустыми компонентами
  truncate(f);//обрезаем конец файла
  close(f);
  writeln('Файл после удаления компонент с нолями:');
  ReadFile(f,n);
 end;
readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2010, 10:43
Помогаю со студенческими работами здесь

Записать в файл f2 последовательность массивов, получающихся преобразованием исходных массивов
Pascal Дан файл h1, компонентами которого являются массивы целых чисел a0,a1,...,a7. Записать в файл f2 последовательность массивов,...

Типизированные файлы. Записать в файл Н2 последовательность массивов, получающихся преобразованием исходных массивов
Дан файл Н1, элементами которого являются массивы целых чисел а0,а1,…,а4. Записать в файл Н2 последовательность массивов, получающихся...

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

Типизированный файл
Товарищи форумчане столкнулся с такой задачкой и подвис( &quot;Создать типизированный файл. Структура записи: пункт отправления, пункт...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru