Количество заданного символа в массиве. - Pascal ABC
Формулировка задачи:
Формулируется так:
Даны n символов, нужно подсчитать сколько раз в строке встречается произвольный символ(вводится с клавиатуры), через процедуру.
Я написал такой код, знаю что не правильный.
Не понимаю в чем ошибки, помогите исправить
Решение задачи: «Количество заданного символа в массиве.»
textual
Листинг программы
Program asgba;
type mas=array[1..100] of char;
procedure get(a:mas;n:integer;c:char;var h:integer);
var i:integer;
begin
h:=0;
for i:=1 to n do
if a[i]=c then h:=h+1;
writeln('Количество символов ',c, '= ', h);
end;
var s:mas;
ch:char;
n,i,k:integer;
begin
write('Введите количество символов n=');
readln(n);
for i:=1 to n do
begin
write('Введите символ №',i,': ');
readln(s[i]);
end;
write('Введите символ который хотите найти: ');
readln(ch);
get(s,n,ch,k);
end.
Объяснение кода листинга программы
В данном коде объявлены две переменные типа mas: s и a. Переменная s представляет собой массив символов, а переменная a - заданный массив символов.
Процесс работы программы следующий:
- Создается процедура
get, которая принимает три аргумента: массивa, числоnи символc. Внутри процедуры объявлены две переменные:iиh. Переменнаяiиспользуется для цикла, а переменнаяh- для подсчета количества вхождений символаcв массивa. - Задается переменная
sтипаmasи присваивается значение массива символов. - Затем, в цикле
for, программа запрашивает у пользователя количество символов, которое нужно найти (n), и каждый символ из этого количества (i). Для каждого введенного символа, программа проверяет, совпадает ли он с искомым символом (if a[i] = c then h := h + 1). Если символы совпадают, то переменнаяhувеличивается на единицу. - После того, как все символы были проверены, программа выводит на экран количество найденных символов.
- В конце программы создается переменная
chтипаchar, и пользователю предлагается ввести символ, который он хочет найти. - Затем вызывается процедура
getс аргументамиs,nиch. Результат выполнения процедуры выводится на экран.