Другие языки программирования и технологии
Задача по Pascal'ю.
Написать программу, которая запрашивает ввести строку и далее выводит на экран информацию о том, сколько раз встречается каждое слово в введенной строке.
Доброго времени суток.
Э-э..., стыдно Максим Викторович не внимательно читать условие. Спрашивется не сколько всего слов во введенной строке, а сколько раз каждое слово встречается. Это разные вещи.
В общем вот мой вариантик.
program Tst;
uses Crt;
var
S1, S2 : String;
i,n : Integer;
A : array[1..255] of String[100]; {массив для слов (полагаю, что их будет не больше 255}
B : array[1..255] of Byte; {массив встречаемости слова}
begin
ClrScr;
ReadLn(S1); {читаем ввод пользователя}
S1 := S1 + ' '; {чтобы не потерять последнее слово}
n := 0; {пока слов нет}
while Pos(' ', S1) > 0 do begin
S2 := Copy(S1, 1, Pos(' ', S1)-1); {выделяем слово из строки}
Delete(S1, 1, Pos(' ', S1)); {и удаляем его из нее}
if S2 <> '' then begin {слово не пустое}
n := n + 1; {увеличиваем счетчик слов}
A[n] := S2; {запоминаем слово}
B[n] := 1; {пока оно одно}
while Pos(S2+' ', S1) > 0 do begin {пока слово есть в строке}
B[n] := B[n] + 1; {наращиваем счетчик}
Delete(S1, Pos(S2+' ', S1), Length(S2)+1); {и удаляем его из строки}
end;
end;
end;
for i:=1 to n do WriteLn(A[ i ], ' - ', B[ i ]); {выводим результат}
ReadLn; {наблюдаем результат}
end.
В принципе, можно обойтись и без массивов. Как? Подумайте T.R.U.E.
Удачи!
Э-э..., стыдно Максим Викторович не внимательно читать условие. Спрашивется не сколько всего слов во введенной строке, а сколько раз каждое слово встречается. Это разные вещи.
В общем вот мой вариантик.
program Tst;
uses Crt;
var
S1, S2 : String;
i,n : Integer;
A : array[1..255] of String[100]; {массив для слов (полагаю, что их будет не больше 255}
B : array[1..255] of Byte; {массив встречаемости слова}
begin
ClrScr;
ReadLn(S1); {читаем ввод пользователя}
S1 := S1 + ' '; {чтобы не потерять последнее слово}
n := 0; {пока слов нет}
while Pos(' ', S1) > 0 do begin
S2 := Copy(S1, 1, Pos(' ', S1)-1); {выделяем слово из строки}
Delete(S1, 1, Pos(' ', S1)); {и удаляем его из нее}
if S2 <> '' then begin {слово не пустое}
n := n + 1; {увеличиваем счетчик слов}
A[n] := S2; {запоминаем слово}
B[n] := 1; {пока оно одно}
while Pos(S2+' ', S1) > 0 do begin {пока слово есть в строке}
B[n] := B[n] + 1; {наращиваем счетчик}
Delete(S1, Pos(S2+' ', S1), Length(S2)+1); {и удаляем его из строки}
end;
end;
end;
for i:=1 to n do WriteLn(A[ i ], ' - ', B[ i ]); {выводим результат}
ReadLn; {наблюдаем результат}
end.
В принципе, можно обойтись и без массивов. Как? Подумайте T.R.U.E.
Удачи!
Uses CRT;
Var
sl,a: byte;
s: String;
Begin
ClrScr; {функция, очищает экран, вместе с ней можно НЕ ПИСАТЬ первую строчку}
sl:=1; {т. к. посл. пробела не существует}
Write('Введите строку: '); ReadLn(s);
For a:=1 To Length(s) Do
If s[a]=' ' Then
sl:=sl+1;
Write('Слов: ',sl); ReadLn;
End.
Ищем пробел после каждого слова, если он найден, прибавляем к счетчику слов 1. Стыдно такого не знать!
Var
sl,a: byte;
s: String;
Begin
ClrScr; {функция, очищает экран, вместе с ней можно НЕ ПИСАТЬ первую строчку}
sl:=1; {т. к. посл. пробела не существует}
Write('Введите строку: '); ReadLn(s);
For a:=1 To Length(s) Do
If s[a]=' ' Then
sl:=sl+1;
Write('Слов: ',sl); ReadLn;
End.
Ищем пробел после каждого слова, если он найден, прибавляем к счетчику слов 1. Стыдно такого не знать!
Похожие вопросы
- Проверьте пожалуйста блок-схему к задаче на Pascal
- Помогите разобраться с задачей по PASCAL
- Помогите написать задачу в Pascal.
- Задачи по Pascal
- помогите с задачей по Pascal abc!!!
- Задачи в Pascal'
- Помогите написать задачу на Pascal 7.0
- Помогите в решении задачи на Pascal
- Помогите пожалуйста решить задачу в Pascal ABC
- Помогите составить задачу в Pascal