IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача со строками.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Написал программу со следующим условием - 1)выделить из каждой строки и напечатать подстроки разделённые одной или несколькими цифрами. 2)среди выделенных подстрок найти подстроку содержащюю минимальное число латинских букв. 3)преобразовать исходную строку, которой принадлежит найденная подстрока, следующим образом: заменить цифры на латинские буквы с соответствующим номером в алфавите ('0'->'A', '1'->'B', '2'->'c'). Но есть проблема, 3 задание не работает и я никак не могу понять почему. Помогите пожалуйста.
Код


var
       str, str1, str2: array [1..100] of string;
       num: array [1..100] of integer;
       i, j, t, k, n, m, h, num1, l: integer;
       p: set of char;
begin
       (*Vvod*)

       write ('Vvedite kollichestvo strok: ');
       readln (k);
       for i:=1 to k do
       begin
               write ('Vvedite ',i, ' stroky: ');
               readln (str[i]);
       end;
       p:=['1','2','3','4','5','6','7','8','9','0'];

       (*Telo*)
       n:=0;
       for i:=1 to k do
       begin
               t:=0;
               for j:=1 to length (str[i]) do
               begin
                       if (str[i][j] in p) then
                       begin
                               if (j-t)>1 then
                               begin
                                       inc (n);
                                       str1[n]:=copy(str[i], t+1, j-t-1);
                                       num[n]:=i;
                               end;
                               t:=j;
                       end;
               end;
       end;
       (*Vuvod*)
       for i:=1 to n do
       begin
               writeln ('Rezyltat: ', str1[i]);
               writeln ('Num: ', num[i]);
       end;

       (*Zadanie 2*)
       h:=32768;
       for i:=1 to n do
       begin
               m:=0;
               for j:=1 to length (str1[i]) do
               begin
                       if (str1[i][j]>'a') AND (str1[i][j]<'z') then
                       begin
                               inc(m);

                       end;
               end;
               if h>m then
               begin
                       h:=m;
                       num1:=i;
               end;
       end;
       (*Vuvod 2*)
       writeln ('Rezyltat 2: Chislo latinskih simvolov: ' , h, ' Num: ', num1, '  Str: ', str1[num1]);


       (*Zadanie 3*)
        l:=0;
        for i:=1 to length (str[num[num1]]) do
        begin
               str2[i]:=str[num[num1]];
        end;
         for i:=1 to n do
         begin
                       if str2[i]='1' then
                       begin
                               str2[i]:='A';
                       end;

                       if str2[i]='2' then
                       begin
                               str2[i]:='B';
                       end;

                       if str2[i]='3' then
                       begin
                               str2[i]:='C';
                       end;

                       if str2[i]='4' then
                       begin
                               str2[i]:='D';
                       end;

                       if str2[i]='5' then
                       begin
                               str2[i]:='E';
                       end;

                       if str2[i]='6' then
                       begin
                               str2[i]:='F';
                       end;

                       if str2[i]='7' then
                       begin
                               str2[i]:='G';
                       end;

                       if str2[i]='8' then
                       begin
                               str2[i]:='H';
                       end;

                       if str2[i]='9' then
                       begin
                               str2[i]:='I';
                       end;
                   
        end;
        for i:=1 to n do
        begin
               writeln ('Rezyltat 3: ', str2[i]);
        end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 3:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name