0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 38
1

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"..."девять", начиная каждое предложение с новой строки

15.07.2012, 12:24. Показов 3403. Ответов 5
Метки нет (Все метки)

Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один"..."девять", начиная каждое предложение с новой строки
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2012, 12:24
Ответы с готовыми решениями:

Из слова "клоун" путем "вырезок" и "склеек" его букв получить слова "уклон","кулон" и "колун"
Из слова "клоун" путем "вырезок" и "склеек" его букв получить слова "уклон","кулон" и...

Даны текстовый файл "F" и строка "S". Получить все строки файла "F", содержащие в качестве фрагмента строку "S".
Плиз помогите написать прогу: Даны текстовый файл "F" и строка "S". Получить все строки файла "F",...

Ввести один из символов "Y" или "n". При вводе "Y" вывести на экран слово "Да", а при вводе "n" слово "нет"
1.Ввести один из символов "Y" или "n". При вводе "Y" вывести на экран слово "Да", а при вводе...

Пожалуйста,составьте программу, которая из слова "ПРОГРАММА" составляет слова: "ГРАММ","РОГА","ГОРА"
Составьте программу, которая из слова "ПРОГРАММА" составляет слова: "ГРАММ","РОГА","ГОРА".( с...

5
Фрилансер
3413 / 2810 / 3000
Регистрация: 08.02.2012
Сообщений: 8,214
Записей в блоге: 1
15.07.2012, 13:08 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
Var f:text;
    s:string;
    i:byte;
Begin
    Assign(f,'C:\a.txt');Reset(f);
    While not Eof(f) do
     Begin
      readln(f,s);
      For i:=Length(s) downto 1 do
       Case s[i] of
        '0':Begin Delete(s,i,1);Insert('ноль',s,i);End;
        '1':Begin Delete(s,i,1);Insert('один',s,i);End;
        '2':Begin Delete(s,i,1);Insert('два',s,i);End;
        '3':Begin Delete(s,i,1);Insert('три',s,i);End;
        '4':Begin Delete(s,i,1);Insert('четыре',s,i);End;
        '5':Begin Delete(s,i,1);Insert('пять',s,i);End;
        '6':Begin Delete(s,i,1);Insert('шесть',s,i);End;
        '7':Begin Delete(s,i,1);Insert('семь',s,i);End;
        '8':Begin Delete(s,i,1);Insert('восемь',s,i);End;
        '9':Begin Delete(s,i,1);Insert('девять',s,i);End;
       End;
      writeln(s);
     End;
     Close(f);
End.
Файл a.txt должен быть создан в корне диска C и заполнен...
1
Почетный модератор
7963 / 3934 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
15.07.2012, 13:11 3
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
uses crt;
const z: array [0..9] of string=(' ноль ',' один ',' два ',' три ',
         ' четыре ',' пять ',' шесть ',' семь ',' восемь ',' девять ');
var f: text;
    s: string;
    i: byte;
    k,c: integer;
begin
assign(f,'D:\in.txt');
reset(f);
while not eof(f) do
      begin
      readln(f,s);
      for i:=1 to length(s) do
          if s[i] in ['0'..'9'] then
             begin
             val(s[i],c,k);
             write(z[c]);
             end else
                 if not (s[i] in ['.','!','?']) then write(s[i])
                    else writeln(s[i]);
      end;
close(f);
end.
и второй вариант, подлиннее, больше переменных, но без пробелов в начале предложения
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
uses crt;
const z: array [0..9] of string=(' ноль ',' один ',' два ',' три ',
         ' четыре ',' пять ',' шесть ',' семь ',' восемь ',' девять ');
var f: text;
    s,p: string;
    i,j: byte;
    k,c: integer;
begin
assign(f,'D:\in.txt');
reset(f); p:='';
while not eof(f) do
      begin
      readln(f,s);
      for i:=1 to length(s) do
          if s[i] in ['0'..'9'] then
             begin
             val(s[i],c,k);
             p:=p+z[c];
             end else
                 if not (s[i] in ['.','!','?']) then p:=p+s[i] else
                    begin
                    p:=p+s[i];
                    while p[1]=' ' do delete(p,1,1);
                    writeln(p);
                    p:='';
                    end;
      end;
if p<>'' then writeln(p);
close(f);
end.
пример исходного файла (располагать на диске D)
Вложения
Тип файла: txt in.txt (135 байт, 15 просмотров)
2
4295 / 1417 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
15.07.2012, 13:18 4
Лучший ответ Сообщение было отмечено как решение

Решение

Тоже выложу. Все равно все коды разные)
Файл text.txt должен быть в папке с исходником.
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
const digits = ['0'..'9'];
      marks = ['?','!','.'];
var i: integer;
    f: text;
    s: string;
begin
 assign(f,'text.txt');
 reset(f);
 while not eof(f) do
  begin
   readln(f,s);
   for i:=1 to length(s) do
    begin
     if s[i] in digits then
      begin
       case s[i] of
        '0': write(' ноль ');
        '1': write(' один ');
        '2': write(' два ');
        '3': write(' три ');
        '4': write(' четыре ');
        '5': write(' пять ');
        '6': write(' шесть ');
        '7': write(' семь ');
        '8': write(' восемь ');
        '9': write(' девять ');
        end;
      end
      else
      write(s[i]);
     if s[i] in marks then
      writeln;
    end;
  end;
  close(f);
end.
Добавлено через 3 минуты
Artem7, а код будет начинать каждое предложение с новой строки?
3
Фрилансер
3413 / 2810 / 3000
Регистрация: 08.02.2012
Сообщений: 8,214
Записей в блоге: 1
15.07.2012, 13:35 5
Цитата Сообщение от BumerangSP Посмотреть сообщение
Artem7, а код будет начинать каждое предложение с новой строки?
Упс...не дочитал условие...
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
Var f:text;
    s,s1:string;
    i:byte;
Begin
    Assign(f,'C:\a.txt');Reset(f);
    While not Eof(f) do
     Begin
      readln(f,s);
      For i:=Length(s) downto 1 do
       Case s[i] of
        '0':Begin Delete(s,i,1);Insert('ноль',s,i);End;
        '1':Begin Delete(s,i,1);Insert('один',s,i);End;
        '2':Begin Delete(s,i,1);Insert('два',s,i);End;
        '3':Begin Delete(s,i,1);Insert('три',s,i);End;
        '4':Begin Delete(s,i,1);Insert('четыре',s,i);End;
        '5':Begin Delete(s,i,1);Insert('пять',s,i);End;
        '6':Begin Delete(s,i,1);Insert('шесть',s,i);End;
        '7':Begin Delete(s,i,1);Insert('семь',s,i);End;
        '8':Begin Delete(s,i,1);Insert('восемь',s,i);End;
        '9':Begin Delete(s,i,1);Insert('девять',s,i);End;
       End;
      s1:='';
      For i:=1 to Length(s) do
       if not(s[i] in ['.','?','!']) then s1:=s1+s[i]
        else 
         Begin
          writeln(s1+s[i]);
          s1:='';
         End;
      if s1<>'' then writeln(s1);
     End;
     Close(f);
End.
2
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 38
15.07.2012, 16:13  [ТС] 6
спасибо за помощь)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2012, 16:13

Даны строки а="вариант",b= "Высоко", с = "макароны". Получить слово "соковарка"
4 .Даны строки а=&quot;вариант&quot;,b= &quot;Высоко&quot;, с = &quot;макароны&quot;. Получить слово &quot;соковарка&quot;.

Вводятся три строки. Зашифровать каждую из них, заменив все буквы "с" на "о", создав процедуру
Собственно, сабж. var s,t,y:string; procedure zam(n:string); var i,x:integer; ...

Составьте программу, которая из слова "тематика" получает слово "математика" и "тема" и выводит эти слова на экран в столбик.
Составьте программу, которая из слова &quot;тематика&quot; получает слово &quot;математика&quot; и &quot;тема&quot; и выводит эти...

В данном словосочетании заменить два символа "ас" на один символы "_+_" и удалить знак "*"
В данном словосочетании заменить два символа &quot;ас&quot; на один символы &quot;_+_&quot; и удалить знак &quot;*&quot;.


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

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

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