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

Перезапись из текстового файла в массив и в типизированный файл

15.02.2014, 10:35. Показов 1668. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо переписать числовые данные из текстового файла в:
1. одномерный массив,
2. типизированный файл,
Необходимо обработать все эти данные по одному и тому же алгоритму в соответствии заданию и выполнить в виде двух процедур, не связанных между собой (например, при обработке типизированного файла не ссылаться на размер массива )

Найти суммы цифр каждого числа без учета повторяющихся цифр. Числа, дающие повторяющиеся суммы, удалить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2014, 10:35
Ответы с готовыми решениями:

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

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

Преобразовать данные из текстового файла в типизированный файл
begin city:=copy(s,1,pos(' ',s)-1); delete(s,1,pos(' ',s)); city2:=copy(s,1,pos('...

Создайте типизированный файл, в котором каждой строке текстового файла соответствует число, равное количеству
2, Задан текстовый файл f1, содержащий произвольный текст. Создайте типи-зированный файл f2 целых...

3
Фрилансер
3418 / 2815 / 3000
Регистрация: 08.02.2012
Сообщений: 8,587
Записей в блоге: 1
15.02.2014, 12:06 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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
Type tf=file of integer;
     tmas=array[1..100] of integer;
Var f:tf;
    g:text;
    A:tmas;
    n,m:integer;
Procedure P1(a:tmas;n:integer);
Var i,j,s,m,t:integer;
    mn:set of 0..9;
    B:tmas;
Begin
    m:=0;i:=1;
    While i<=n do
    Begin
      t:=abs(a[i]);mn:=[];s:=0;
      While t>0 do
      Begin
        if not((t mod 10) in mn) then s:=s+t mod 10;
        t:=t div 10;
      End;
      t:=0;
      For j:=1 to m do
       if B[j]=s then t:=1;
      if t=0 then
      Begin
        inc(m);
        B[m]:=s;
      End
      else
      Begin
        dec(n);
        For j:=i to n do
         A[j]:=A[j+1];
        dec(i);
      End;
      inc(i);
    End;
    writeln('Суммы массива');
    For i:=1 to m do
     write(B[i]:3);
    writeln;
End;
Procedure P2(f:tf);
Var i,j,s,m,t,n:integer;
    mn:set of 0..9;
    B:tmas;
Begin
    Reset(f);m:=0;i:=1;
    n:=FileSize(f);
    While i<=n do
    Begin
      read(f,t);mn:=[];s:=0;
      While t>0 do
      Begin
        if not((t mod 10) in mn) then s:=s+t mod 10;
        t:=t div 10;
      End;
      t:=0;
      For j:=1 to m do
       if B[j]=s then t:=1;
      if t=0 then
      Begin
        inc(m);
        B[m]:=s;
      End
      else
      Begin
        dec(n);
        For j:=i to n do
        Begin
          Seek(f,i);
          read(f,t);
          Seek(f,i-1);
          write(f,t);
        End;
        dec(i);
        Seek(f,i-1);
      End;
      inc(i);
      Seek(f,i-1);
    End;
    writeln('Суммы файла');
    For i:=1 to m do
     write(B[i]:3);
    writeln;
End;
Begin
    Assign(g,'in.txt');Reset(g);
    Assign(f,'in.dat');Reset(f);
    While not Eof(g) do
    Begin
      While not Eoln(g) do
      Begin
        read(g,m);
        write(f,m);
        inc(n);
        A[n]:=m;
      End;
      readln(g);
    End;
    Close(g);
    P1(a,n);
    P2(f);
    Close(f);
End.
1
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 4
15.02.2014, 12:08  [ТС] 3
Благодарю
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.02.2014, 13:44 4
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
uses crt;
type mas=array[1..100] of integer;
     tfile=file of integer;
function sum(a:integer):byte;
var b:integer;
    c,s:byte;
    m:set of byte;
begin
b:=a;
m:=[];
s:=0;
while b>0 do
 begin
  c:=b mod 10;
  if not(c in m) then
   begin
    s:=s+c;
    m:=m+[c];
   end;
  b:=b div 10
 end;
sum:=s
end;
procedure readmas(var f:text;var a:mas;var n:integer);
begin
reset(f);
n:=0;
while not eof(f) do
 begin
  n:=n+1;
  read(f,a[n]);
 end;
close(f)
end;
procedure readfile(var f:text;var t:tfile);
var a:integer;
begin
reset(f);
assign(t,'file');
rewrite(t);
while not eof(f) do
 begin
  read(f,a);
  write(t,a);
 end;
close(f)
end;
procedure printmas(a:mas;n:integer);
var i:integer;
begin
writeln('Исходный массив');
for i:=1 to n do
write(a[i]:4);
writeln
end;
procedure printfile(var t:tfile);
var a:integer;
begin
seek(t,0);
writeln('Содержание исходного типизированного файла');
while not eof(t) do
 begin
  read(t,a);
  write(a:4);
 end;
writeln
end;
procedure newmas(var a:mas;var n:integer);
var i,j:integer;
    m:set of byte;
begin
m:=[];
i:=1;
while i<=n do
if not(sum(a[i]) in m) then
 begin
  m:=m+[sum(a[i])];
  i:=i+1
 end
else
 begin
  if i=n then n:=n-1
  else
   begin
    for j:=i to n-1 do
    a[j]:=a[j+1];
    n:=n-1
   end;
 end;
writeln('Удаление элементов с повторяющейся суммой цифр');
for i:=1 to n do
write(a[i]:4);
writeln
end;
procedure newfile(var t:tfile);
var i,j,k,a,b:integer;
    m:set of byte;
begin
seek(t,0);
m:=[];
i:=0;
k:=0;
while i<filesize(t)-k-1 do
 begin
  seek(t,i);
  read(t,a);
  if not(sum(a) in m) then
   begin
    m:=m+[sum(a)];
    i:=i+1
   end
  else
   begin
    k:=k+1;
    for j:=i to filesize(t)-2 do
     begin
      seek(t,j+1);
      read(t,b);
      seek(t,j);
      write(t,b)
     end;
   end
 end;
seek(t,filesize(t)-1-k);
read(t,b);
if sum(b) in m then k:=k+1;
seek(t,filesize(t)-k);
truncate(t);
writeln('Удаление элементов с повторяющейся суммой цифр');
seek(t,0);
while not eof(t) do
 begin
  read(t,a);
  write(a:4);
 end;
close(t)
end;
var f:text;
    a:mas;
    t:tfile;
    n:integer;
begin
clrscr;
assign(f,'input.txt');
readmas(f,a,n);
readfile(f,t);
printmas(a,n);
newmas(a,n);
printfile(t);
newfile(t);
readln
end.
1
15.02.2014, 13:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2014, 13:44
Помогаю со студенческими работами здесь

Ввести из текстового файла данные для массива структур, записать их в типизированный файл и выполнить действия в соответствии со своим вариантом
Структура STUDENT содержит следующие поля: - фамилия и инициалы; - номер группы; - успеваемость...

Из текстового файла в Типизированный
Помогите переделать программу из текстового файла в типизированный плиз! в долгу не останусь ОЧЕНЬ...

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru