Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Строки

64K
26 декабря 2010 года
JuliaR
6 / / 05.12.2010
Пожалуйста помогите! Задача такая: Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно выводиться один раз.

программа готова...

Program P1;
Uses crt;
Var text: string;
a: array[1..255] of char;
i, j, n: byte;
begin
clrscr;
Writeln (' Vvedite text' );
Read (text);
For i :=1 to length (text) do
begin
a := chr(i); n:=0;
for j:=1 to length (text) do
if a = text [j] then n: = n+1;
if n<>0 then writeln ( 'Simvol ' , a , ' vstre4aetsya v tekste ' , n,' raz.' );
End;
Readln;
Readln;
End.


Есть программа готовая л/р по строкам,делала не сама,поэтому не могу нормально объяснить вот этот момент...


Writeln (' Vvedite text' );
Read (text);
For i :=1 to length (text) do
begin
a := chr(i); n:=0;
for j:=1 to length (text) do
if a = text [j] then n: = n+1;
if n<>0 then writeln ( 'Simvol ' , a , ' vstre4aetsya v tekste ' , n,' raz.' );
End;


....пожалуйста напишите коментарии к каждой строчке)))


заранее огромное спасибо))
62K
30 декабря 2010 года
(zom!k
36 / / 30.12.2010
Код:
Program P1;                  [COLOR="SeaGreen"]//...[/COLOR]
Uses crt;                               [COLOR="#2e8b57"]//модуль CRT[/COLOR]
Var text: string;                      [COLOR="#2e8b57"]//переменные....[/COLOR]
      a: array[1..255] of char;        
      i, j, n: byte;                    

begin
  clrscr;                                   [COLOR="#2e8b57"]//очистка[/COLOR]
  Writeln ('Введите текст: ' );        [COLOR="#2e8b57"]//.....[/COLOR]
  Read (text);                       [COLOR="#2e8b57"]//вводим текст[/COLOR]
  For i :=1 to length (text) do      [COLOR="#2e8b57"]//в красном цикле перебираем каждый символ строки, чтобы сравнить его с символом синего цикла....[/COLOR]
     [COLOR="Red"]begin[/COLOR]
        a := chr(i); n:=0;     [color="#2e8b57"]//както бредово - зачем создавать массив символов и впихивать туда по одному символу текста, один фиг таже строка будет?...далее обнуляется счетчик - сколько встречается символ в строке...[/COLOR]
       [COLOR="Blue"] for j:=1 to length (text) do if a  = text [j] then n: = n+1;[/COLOR]
         if n<>0 then writeln ( 'Символ ' , a , ' встречается в тексте ' , n,' раз' );       [COLOR="#2e8b57"] // если данный символ встречается хотя бы один раз, то написать - сколько раз он встречается в строке...[/COLOR]
     [COLOR="#ff0000"]End;[/COLOR]
  Readln;          
  Readln;
End.




я бы сделал по другому...
62K
30 декабря 2010 года
(zom!k
36 / / 30.12.2010
вот так думаю будет понятней:

Код:
uses CRT;
var stroka: string;
     rep: array [1..255] of byte;
     i,j,k,n:byte;

begin
    clrscr;
    write ('Введите строку:  ');
    readln (stroka);
    for i:=1 to 255 do rep:=0;
    for i:=1 to length (stroka) do inc (  rep[ ord(stroka) ]   );
    for i:=1 to 255 do begin
      if rep<>0 then writeln('Символ " ',chr(i),' " встречается в тексте ', rep, ' раз...');
      readln;     [COLOR="Teal"]//после каждого вывода количества повторов нужно нажать ENTER[/COLOR]
    end;
end.



Могу так же написать комментарии к строчкам..
64K
05 января 2011 года
JuliaR
6 / / 05.12.2010
Цитата: (zom!k
вот так думаю будет понятней:

Код:
uses CRT;
var stroka: string;
     rep: array [1..255] of byte;
     i,j,k,n:byte;

begin
    clrscr;
    write ('Введите строку:  ');
    readln (stroka);
    for i:=1 to 255 do rep:=0;
    for i:=1 to length (stroka) do inc (  rep[ ord(stroka) ]   );
    for i:=1 to 255 do begin
      if rep<>0 then writeln('Символ " ',chr(i),' " встречается в тексте ', rep, ' раз...');
      readln;     [COLOR="Teal"]//после каждого вывода количества повторов нужно нажать ENTER[/COLOR]
    end;
end.



Могу так же написать комментарии к строчкам..









ну если Вам не трудно,напишите)))
огромное спасибо)))))

242
06 января 2011 года
Оlga
2.2K / / 04.02.2006
JuliaR, лучше попробуйте сами эту программу написать, ее решение более чем простое. Делаете массив размером равный количеству символов, массив типа int, обнуляете его - счетчик готов.
Если например надо узнать количество повторений каждой буквы алфавита, независимо от ее регистра, то просто берете массив размером 32 => индексация от 1 до 32 => индекс 1 - это буква 'А', индекс 1 - буква 'B' и т.д.
как сопаставить индекс с буквой? text-'A' (or 'a') +1 ... примеры данного алгоритма должны быть в FAQ раздела "Студентам".
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог