Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Shadowdown
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 17
#1

Преобразование файла x в файл y

22.05.2013, 00:55. Просмотров 363. Ответов 2
Метки нет (Все метки)

Добрый вечер, уважаемые форумчане!
Собственно, прошу вас помочь с одной задачкой, никак не могу разобраться как работать с файлами, поэтому хотелось бы на примере посмотреть как это работает.
Само задание звучит так:
"Создать файл X, компонентами которого является заданное число целочисленных массивов а0, а1,...,а8. Элементы a[i] массивов получить от датчика случайных чисел со значениями в интервале [1..10]. Преобразовать файл X в файл Y, в котором каждый наибольший элемент компоненты - массива заменён нулем.
Вот код, который я сам додумался написать:
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
program fail;
const k=1;
type matrix=array[1..9] of integer;
var x,y:file of matrix; i,t,b,max:integer; a: matrix;
begin
assign(x, 'filex.txt');
rewrite(x);
for t:= 1 to k do
begin
  for i:=1 to 8 do  
    begin
      read(a[i]);
      write(a[i], ' ');
      write;
    end;
max:=a[1];
  for i:=1 to 8 do
     if a[i]> max then
        max:=i;
        writeln;
end;
close(x);
assign(y,'filey.txt');
rewrite(y);
reset(x);
for i:=1 to k do
 begin
 for t:= 1 to 8 do
 begin
 read(x,a);
    
    write(a[t], ' ');
    write;
 end;
 end;
  write;
 
 
 close(y);
 
 
 
end.
Количество массивов я поставил как единицу, чтобы попытаться хотя бы на одном массиве провернуть замену на ноль, но как-то ничего не вышло. Заранее извиняюсь, если код покажется странным или бредовым, просто совсем не втыкаю в работу с файлами.
Спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 00:55
Ответы с готовыми решениями:

Переписать с сохранением порядка следования строки файла f1 в файл f2, а строки файла f2 в файл f1 в обратном порядке
1.Создать и заполнить текстовые файлы f1 и f2. Переписать с сохранением порядка...

Файл: Записать в файл h сначала компоненты файла f, затем - компоненты файла g в обратном порядке.
Даны символьные файлы f и g. Составьте программу записывающую в файл h сначала...

Переписать с сохранением порядка следования компоненты файла F1 в файл F2, а компоненты файла F2 - в файл F1
Даны символьные файлы F1 и F2. Переписать с сохранением порядка следования...

Переписать с сохранением порядка следования компоненты файла а1 в файл f2 а файла f2 в файл f1
Помогите пожалуйста товарищи программисты решить мой вариант на тему файлы... ...

Переписать с сохранением порядка следования компоненты файла 1 F в файл 2 F , а компоненты файла 2 F в файл 1 F
Ввести файлы 1 F и 2 F . Переписать с сохранением порядка следования компоненты...

2
Kodzaev
3003 / 1892 / 1646
Регистрация: 30.04.2011
Сообщений: 3,054
22.05.2013, 16:48 #2
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
Type
  mas = Array [1..9] of Integer;
Var
  x,y: File of mas;
  m: mas;
  i,j: Byte;
  max: Integer;
BEGIN
Assign(x,'filex.dat');
Rewrite(x);  {создаем файл X}
For i:=1 to 9 do
begin
  For j:=1 to 9 do
  m[j]:=Random(10)+1;   {генерируем массив из 9 элементов}
  Write(x,m);   {записываем массив в файл}
end;
Assign(y,'filey.dat');
Rewrite(y);  {создаем файл Y}
Reset(x);   {открываем файл X для чтения}
Writeln('Файл X:');
While not Eof(x) do  {пока не достигнут конец файла}
begin
  Read(x,m);  {читаем очередную компоненту-массив}
  max:=m[1];   {Считаем максимальным 1-ый элемент массива}
  For i:=1 to 9 do    {в этом цикле определяем максимальный компонент текущего массива, а также выводим сам массив}
  begin
    Write(m[i],' ');
    If m[i]>max Then
    max:=m[i];    {определили}
  end;
  Writeln;
  {Теперь нужно заменить этот элемент на ноль.
   Еще раз пробегаем по этому же массиву, и если элемент равен максимальному,
   то заменяем его. Внимание! Заменяются ВСЕ элементы, равные максимальному.
   Если нужно заменить только один элемент, то необходимо запомнить индекс, и
   по нему уже заменять}
  For i:=1 to 9 do
  If m[i]=max Then
  m[i]:=0;
  Write(y,m);  {заносим готовую компоненту-массив в файл Y}
end; {закончили читать файл X}
Reset(y); {Открываем для чтения файл Y}
Writeln('Файл Y:');
While not Eof(y) do
begin
  Read(y,m);      {читаем массив}
  For i:=1 to 9 do {выводим его}
  Write(m[i],' ');
  Writeln;
end;
Close(x);
Close(y);
Readln
END.
1
Shadowdown
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 17
22.05.2013, 17:41  [ТС] #3
Огромное спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 17:41

Переписать с сохранением порядка следования компоненты файла f1 в файл f2, а компоненты файла f2 в файл f1
Даны текстовые файлы f1 и f2. Переписать с сохранением порядка следования...

Преобразование текстового файла в типизированный
Написать програму, какая выполняет превращение текстового файла в типизирующий....

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru