program menushka; uses modulmenu, slova, crt; { ------------------------------------ --процедура чтения данных из файла-- ------------------------------------ } procedure read_file(var out_veck: massive; var count: integer); var i: integer; file_name, str: string; file_input: text; begin Writeln('Введите имя файла для чтения данных:'); readln(file_name); {получаем имя файла} Assign(file_input, file_name); {окрываем указанный файл} Reset(file_input); count := 0; while not EOF(file_input) do {в цикле построчно читаем файл} begin Inc(count); readln(file_input, str); {считали строку} out_veck[count] := str; {добавили в массив считанную строку} end; Close(file_input); {закрыли файл} end; { ------------------------------------- ---процедура вывода данных в файл --- ------------------------------------- } procedure write_file(out_veck: massive; count: integer);{запись в файл} var i: integer; file_name: string; file_out: text; begin Writeln('Введите имя файла для записи данных:'); readln(file_name); Assign(file_out, file_name); Rewrite(file_out); for i := 1 to count do Write(file_out, out_veck[i], ' '); writeln(file_out); Close(file_out); end; { ------------------------------------------- -- процедура ввода данных с клавиатуры -- ------------------------------------------- } procedure input_scr(var out_veck: massive; var count: integer);{ввод с клавиатуры} var i: integer; str: string; begin writeln('введите количество вводимых строк:'); readln(count); for i := 1 to count do begin writeln('введите строку ', i, ':'); readln(str); out_veck[i] := str; end; end; { -------------------------- -- основная программа -- -------------------------- } var s1, s2, t, p1, p2, x: string; l: byte; h: char; f1, f2: Text; m, i, k, n: integer; str: massive; out_veck: massive; begin { --------------------------- -- выбор способа ввода -- --------------------------- } t := 'Меню ввода данных'; s1 := 'Ввод с клавиатуры'; s2 := 'Ввод из файла '; Menu(s1, s2, t, l, h); m := l; if (l = 1) and (h = #13) then {vvod iz faila} read_file(str, n); {читаем данные из файла в массив str, n - число строк которые хранятся в массиве} if (l = 2) and (h = #13) then {ручной ввод данных} input_scr(str, n); { ----------------------------------- -- выбор запускаемой программы -- ----------------------------------- } t := 'Какую программу запустить'; s1 :=' слова перевёртыши'; s2 :='относительная частота символов'; Menu(s1, s2, t, l, h); m := l; if (l = 1) and (h = #13) then {запуск программы "частота"} begin k := 1; for i := 1 to n do begin PoiskSimvolov(str, n, out_veck, k); {рисуем график } end; end; if (l = 2) and (h = #13) then {запуск программы "перевёртыши"} {begin} for i := 1 to n do {запуск поиска слов, n проходов, больше не надо, т.к. не может быть записей больше чем n} PoiskSlov(str[i], out_veck, k); {end;} { --------------------------- -- выбор вывода данных -- --------------------------- } t := 'Меню вывода данных'; s1 := 'Вывод на экран '; s2 := 'Запись в файл'; Menu(s1, s2, t, l, h); { if l = 1 then writeln(s2, ':') else writeln(s1, ':'); } if (l = 1) and (h = #13) then {запись в файл} write_file(out_veck, k); if (l = 2) and (h = #13) then {вывод на экран} { begin Write('слова перевертыши: '); } for i := 1 to k do Write(out_veck[i], ' '); { writeln(); writeln('число слов: ', k); end; end; } readln; end.