Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите решить, я что-то туплю

Автор: -Диман- 18.11.2007 0:25

Для каждого символа заданного текста указать, сколько раз он встречается(выводить не более 1-го раза) буду очень благодарен!!! yes2.gif

Автор: Client 18.11.2007 1:10

uses crt;
var
a:array['a'..'z'] of integer;
c:char;
begin
clrscr;
writeln(' Vvedite simvoli ');
repeat
read©;
a[c]:=a[c]+1;
until eoln(input);
for c:='a' to 'z' do
begin
write(' ',c,' = ',a[c]);
end;
readkey
end.

Так пойдет?

Автор: TORETO 18.11.2007 1:22

Желательно без ввода массива, у нас препод вредный, боюсь ему такой способ не понравится, но все равно ОГРОМНОЕ СПАСИБО good.gif

Добавлено через 9 мин.
А можно так, чтобы выводились значения только тех символов, которые есть.И не использовать eoln(input)-мы такую функцию не учили. Я думаю нужно использовать цикл For, оператор ord или что-то в этом духе.

Добавлено через 13 мин.
TORETO-это тоже я Диман, просто зарегестрировался

Автор: Client 18.11.2007 23:05

Цитата
А можно так, чтобы выводились значения только тех символов, которые есть.

при выоде добавь условие, оно будет таким
for c:='a' to 'z' do
if a[c]>0 then
write(' ',c,' = ',a[c]);

Цитата
И не использовать eoln(input)-мы такую функцию не учили. Я думаю нужно использовать цикл For, оператор ord или что-то в этом духе.

For i:= 1 to n do
begin
read©;
a[c]:=a[c]+1
end;

Где n это заранее указанное число символов
Без массива тоже можно, но я напрочь забыл как сделать(