25.11.2012, 15:39 | #1 (permalink) |
Новичок
Регистрация: 25.11.2012
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Составить программу, которая выделяет отдельные слова и числа
Слова поместить в массив слов, числа поместить массив чисел. Найти в массивах самое короткое слово и минимальное число. Вывести на экран слова в столбик. Например, если исходная строка ’Длина пути равна 1 метр.’, то на экран будет выведено: Д п р м л у а е и т в т н и н р а а Спасибо |
25.11.2012, 15:39 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти ссылки могут раскрыть глаза на решение проблемы Помогите составить программу Помогите составить программу Написать программу, которая считывает текст из файла и выводит на экран предложения |
25.11.2012, 17:14 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Главное - продолжайте хранить великую тайну языка программирования, на котором должно быть выполнено задание. И ни-ко-му, даже под пытками. Особенно нам!
|
25.11.2012, 18:53 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Тогда получите:
Код:
Var S:String; W,Wrd:Array[1..100] of String; M:Array[1..100,1..100] of Char; Num:Array[1..100] of Real; i,j,Nw,Lmax,Nnumb,Nword,Shrt_W_Num,Min_Num:Byte; Code:Integer; R:Real; Begin Writeln('Enter the string:'); Readln(S); Nw:=1; i:=0; W[Nw]:=''; Repeat Inc(i); If (S[i]<>' ') and (i<=Length(S)) then W[Nw]:=W[Nw]+S[i] else If S[i]=' ' then begin repeat Inc(i); until S[i]<>' '; Dec(i); Inc(Nw); W[Nw]:=''; end; Until i>Length(S); Nword:=0; Nnumb:=0; For i:=1 to Nw do begin VAL(W[i],R,Code); if Code=0 then begin Inc(Nnumb); Num[Nnumb]:=R; end else begin Inc(Nword); Wrd[Nword]:=W[i]; end; end; Writeln; Writeln('Array of words:'); Write(Wrd[1]); For i:=2 to Nword do Write(' '+Wrd[i]); Writeln; Writeln; Writeln('Array of numbers:'); Write(Num[1]:0:3); For i:=2 to Nnumb do Write(' ',Num[i]:0:3); Writeln; Writeln; Lmax:=Length(Wrd[1]); Shrt_W_Num:=1; For i:=2 to Nword do begin if Length(Wrd[i])>Lmax then Lmax:=Length(Wrd[i]); if Length(Wrd[i])<Length(Wrd[Shrt_W_Num]) then Shrt_W_Num:=i; end; Min_Num:=1; For i:=2 to Nnumb do If Num[i]<Num[Min_Num] then Min_Num:=i; Writeln('Shortest word is "'+Wrd[Shrt_W_Num]+'"; Minimal number is ',Num[Min_Num]:0:3); Writeln; For i:=1 to Nword do For j:=1 to Lmax do M[i,j]:=' '; For j:=1 to Nword do For i:=1 to Length(Wrd[j]) do M[i,j]:=Wrd[j][i]; For i:=1 to Nword do begin For j:=1 to Lmax do Write(M[i,j]+' '); Writeln; end; Readln; End. |
25.11.2012, 22:56 | #5 (permalink) |
Новичок
Регистрация: 25.11.2012
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Такая штука при вводе предложения или какого-нибудь значения
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
26.11.2012, 12:01 | #7 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Night_Rain, попробуйте так. Введите дополнительную переменную blablabla:Char; и перед КАЖДОЙ манипуляцией с элементами строк (то, что у меня S[i], Wrd[j][i] и т.д.) вставьте строки типа blablabla:=S[i]; blablabla:=Wdr[j][i]; и т.п., и дальше работайте с переменной blablabla. Авось так не подавится. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|