![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 01.06.2010
Сообщений: 2
|
![]()
Уважаемые программисты! Помогите пожалуйсто с программой. Суть ее в том, что программа делит содержимое входного файла на два других, состоящие из слов, в которых кол-во согласных превышает кол-во гласных и наоборот. Преподователь требует переделать программу из-за массива записей ttt = array [1..20] of tz, говорит мол из-за этого программа занимает большое колличество памяти... не имею понятия как это сделать... помогите чем можете....
вот сама прога : program masivbuk; {$APPTYPE CONSOLE} uses SysUtils; type vek = array[1..254] of char; tz = record sl: vek; kl: integer; pl: integer; end; ttt = array [1..20] of tz; var qq: set of char; sb,sc: ttt; f1: text; s: string; st: vek; z,n,fm,em,q,f: integer; procedure razb(a: vek; m: integer; var b,c: ttt); var i,j,sa: integer; begin qq:=['a','e','u','y','o','i']; sa:=0; j:=0; for i:=1 to m do if not(a[i]=' ' then begin j:=j+1; if a[i] in qq then sa:=sa+1; end else begin if j>0 then if j-sa>sa then begin fm:=fm+1; b[fm].kl:=j-sa; b[fm].pl:=sa; j:=i-j; while j<=i do begin f:=f+1; b[fm].sl[f]:=a[j]; j:=j+1; end; sa:=0; f:=0; end else begin em:=em+1; c[em].kl:=j-sa; c[em].pl:=sa; j:=i-j; while j<=i do begin q:=q+1; c[em].sl[q]:=a[j]; j:=j+1; end; sa:=0; q:=0; end; j:=0; end; end; begin { TODO -oUser -cConsole Main : Insert code here } assign(f1,'X:\vhodnoy.txt') ; reset(f1); while not eoln(f1) do read(f1,s); writeln(s); readln; close(f1); n:=length(s); for z:= 1 to n do st[z]:=s[z]; razb(st,n,sb,sc); assign(f1,'X:\vihodnoy1.txt') ; rewrite(f1); writeln; for z:=1 to fm do begin for n:=1 to 20 do begin write(sb[z].sl[n]); write(f1,sb[z].sl[n]); end; write(sb[z].kl:4); write(sb[z].pl:4); write(f1,sb[z].kl:4); write(f1,sb[z].pl:4); writeln(f1); writeln; end; close(f1); assign(f1,'X:\vihodnoy2.txt') ; rewrite(f1); writeln; for z:=1 to em do begin for n:=1 to 20 do begin write(sc[z].sl[n]); write(f1,sc[z].sl[n]); end; write(sc[z].kl:4); write(sc[z].pl:4); write(f1,sc[z].kl:4); write(f1,sc[z].pl:4); writeln(f1); writeln; end; close(f1); readln; end. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 04.05.2010
Сообщений: 495
|
![]() Код:
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для работы с текстовыми файлами | Neo_one | Помощь студентам | 2 | 26.05.2010 22:57 |
программа по работе с текстовыми файлами | Kowmar | Помощь студентам | 0 | 25.05.2010 01:31 |
Работа с текстовыми файлами | galka_kiss | Фриланс | 18 | 24.02.2010 22:00 |
Работа с текстовыми файлами | Gigabit | Общие вопросы Delphi | 3 | 19.02.2010 10:29 |
работа с текстовыми файлами | metallldoctor | Помощь студентам | 0 | 10.01.2010 15:28 |