13.04.2013, 22:29 | #1 (permalink) |
Member
Регистрация: 06.02.2012
Сообщений: 46
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Дана символьная величина, Паскаль
var a:string; b: array [1..10] of integer; f,i,k,i1,i2: integer; begin write('a='); readln (a); a:=a+' '; k:=0; i1:=1; i2:=0; for i:=1 to lenght (a) do begin if (copy (a,i,1)=' ' ) then begin k:=k+1; i2:=i; b[k]:=copy(a,i1,i2-i1+1); i1:=i2+1; end; end; writeln ('пер слово = ', b[1]); for i:=2 to k do if lenght (b[i]=6 and b[i,5,1]); readln; end но программа выводит мне не то слово......помогите пожалуйста |
13.04.2013, 22:29 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Аналогичные темы создавались ранее, вы можете ознакомиться с ними Дана последовательность символов Дана сумма ряда. Ряд Маклорена в Паскале |
14.04.2013, 10:33 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну, откровенно говоря, я бы на месте транслятора, увидев шедевры типа
if lenght (b[i]=6 and b[i,5,1]); выдал бы та-акое слово, что сантехники, покраснев, как свёклы, попадали бы без чувств. И за ошибки, и за враньё. А враньё потому, что ни один транслятор подобного нагромождения ляпов и неряшливостей не пропустил бы и ничего, кроме перечня ошибок, не выдал, так что утверждения, что он якобы показывает какой-то (пусть и не тот) результат, есть полная и абсолютная ложь. Достаточно того, что НЕТУ такого служебного слова "Lenght", а есть "Length" - длина (англ.). Ну и еще куча всего. Практически в каждой строке по "перлу". Пытался проследить применяемый Вами алгоритм и, честно говоря, спасовал. Что-то, не пойми что, накручено-наверчено, а что - лишь автор ведает. Ладно, вот Вам работающий код: Код:
var a,S:string; i,N: integer; begin write('a= '); readln(a); N:=0; i:=1; Repeat While (a[i]=' ') and (i<Length(a)) do Inc(i); S:=''; While (a[i]<>' ') and (i<=Length(a)) do begin S:=S+a[i]; Inc(i); end; If (Length(S)=6) and (S[Length(S)-1]='и') then begin Write(S+' '); Inc(N); end; Until i>=Length(a); Writeln; Writeln(N,' words'); Readln End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|