253 / 20 / 5
Регистрация: 30.10.2008
Сообщений: 68
|
|
1 | |
Вывести слово данной строки, предшествующее первому из слов, содержащих букву 'a'08.12.2008, 18:21. Просмотров 1102. Ответов 4
Метки нет Все метки)
(
Задача: вывести слово данной строки, предшествующее первому из слов, содержащих букву 'a'
уже 3ий день не получается, не знаю что делать, у меня или бесконечный цикл получается или программа ничего не делает =)
0
|
|
08.12.2008, 18:21 | |
Сформировать строку из слов исходной строки, содержащих заданную букву (dll-библиотека) - Assembler
|
|
Супер-модератор
8737 / 2447 / 139
Регистрация: 07.03.2007
Сообщений: 11,681
|
|
08.12.2008, 18:36 | 2 |
ну покажи свое творчество
0
|
253 / 20 / 5
Регистрация: 30.10.2008
Сообщений: 68
|
|
08.12.2008, 19:34 [ТС] | 3 |
ну вот одна из моих бредовых идей, только не смейтесь
Код
program str; uses crt; var s,s1,s2:string; i,l,a,n:byte; f:boolean; begin writeln('input string'); readln(s); l:=length(s); a:=0; n:=0; i:=1; while s[i]=' ' do inc(i); while a=0 do begin s1:=''; while (s[i]<>' ') and (i<=l) do begin s1:=s1+s[i]; if (s[i]='a') and (n>0) then inc(a); inc(i); end; s2:=s1; i:=i+2; inc(n); end; write(s2); end.
0
|
Супер-модератор
8737 / 2447 / 139
Регистрация: 07.03.2007
Сообщений: 11,681
|
|
09.12.2008, 10:37 | 4 |
в паскале не силен, может не все варианты учел, проверь, потом скажешь, что там у меня ч творчеством
Код
program str; uses crt; var s,s1,s2:string; i,l,a,n:byte; f:boolean; begin writeln('input string'); readln(s); l:=length(s); i:=2; if(s[1] = 'a') then writeln('Empty') else begin while i < l do begin if(s[i] = 'a') and (s[i - 1] = ' ') and (i <> 2) then break else inc(i); end; a:=i - 2; if(i <> l) then begin while a <> 0 do begin if (s[a] = ' ') then break else s1:= s[a] + s1; dec(a); end; writeln(s1); end else writeln ('Empty'); end; readkey; end.
0
|
253 / 20 / 5
Регистрация: 30.10.2008
Сообщений: 68
|
|
09.12.2008, 16:34 [ТС] | 5 |
так, разобрался сам, вчера много думал, не мог уснуть и тд. и вот что придумал:
Код
program str; uses crt; var s,s1,s2:string; i,l,n:byte; a,f:boolean; procedure read_word(s:string; var s1:string; var i:byte); {процедура считывает из строки s слово начиная с позиции i, и сохраняет его в строку s1} var l:byte; begin l:=length(s); s1:=''; while (s[i]<>' ') and (i<=l) do begin s1:=s1+s[i]; inc(i); end; end; procedure skip_spaces(s:string; var i:byte); {процедура пропускает пробелы и устанавливает указатель i на следующую после последнего пробела позицию} begin while s[i]=' ' do inc(i); end; function search_char(s1:string):boolean; {функция ищет в слове букву 'a'} var i,l:byte; begin search_char:=false; l:=length(s1); for i:=1 to l do if s1[i]='a' then search_char:=true; end; begin writeln('input string'); readln(s); l:=length(s); i:=1; a:=false; n:=0; s1:=''; s2:=''; skip_spaces(s,i); if i>l then {если в строке одни пробелы, то завершение программы} write('err') else begin while (i<=l) and (a=false) do begin skip_spaces(s,i); read_word(s,s1,i); inc(n); {счетчик слов} f:=search_char(s1); if (n>=2) and (f=true) then begin a:=true; write(s2); end; s2:=s1; s1:=''; inc(i); end; end; end.
0
|
09.12.2008, 16:34 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. При выводе выдаёт иеролифы. задача заключается в том, чтобы пользователь вводит слово и нужно вывести первую букву, всё слово и последнюю букву. TASM Строки: вывести определенную букву или слово и их количество Определить число, предшествующее первому из введенных максимальных значений Строки. Из данной строки выделить подстроку символов, предшествующих первому пробелу. Определить, является ли она числом
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |