четвер, 11 січня 2018 р.

Алгоритми на підрахунок символів

Задачі на рахування символів

У попередньому завданні символи вибиралися за умовою з таблиці ASCIІ-кодів та виводились на екран.
Тепер символи будуть будь-які. Вони будуть вводитись з клавіатури, перевіряться на відповідність умові та підраховуваться.

Приклад 1

Ввести з клавіатури будь-яких символів. Скільки серед них „+”? Скільки серед них „–”?
Дано: n – кількість введених символів та самі символи.
Знайти: підрахувати окремо плюси та мінуси.

Змінні:

Вхідні:
  • n – кількість введених символів (ціле число)
  • a – сам символ (символьне)
Вихідні:
  • kp – кількість ”+” (ціле число)
  • km – кількість ”-” (ціле число)
Проміжні дані:
  • i – параметр циклу (ціле число)

Алгоритм

  1. Спочатку потрібно присвоїти початкове значення лічильникам kp, km.
  2. Вводимо – кількість символів, що будемо вводити. Це значення буде визначати кількість витків циклу.
  3. У тілі циклу у операторних дужках виконуються такі дії:
    • Оператор readln(a) вводить символ у змінну a. Для вводу символів використовувати тільки оператор readln. Символи вводити у стовпчик. Символів буде n. Але кожний наступний символ ми будемо вводити в одну і ту ж змінну, затираючи попередній. Це не страшно, бо з попереднім символом на попередньому витку цикли вже будуть виконані всі необхідні дії.
    • Якщо введений символ плюс, то збільшуємо лічильник kp.
    • Якщо введений символ мінус, то збільшуємо лічильник km.
  4. Коли цикл закінчиться, тобто будуть введені всі n символів, виводиться на екран значення лічильників kp та km.

Блок–схема програми

Програма

 var i,n,kp,km:integer; a:char;
begin
 kp:=0; km:=0;
 readln(n);
 for i:=1 to n do
 begin
   readln(a);
   if a='+' then:=kp+1;
   if a='-' then km:=km+1;
 end;
 writeln(kp,' ',km);
end.

Результат роботи програми

ВвідВивідПояснення
15
s
+
-
t
-
1 2Перше введене число це значення змінної n=5. Інші символи - це значення змінної a. Серед 5 символів, вибрані + та -. Плюсів 1, мінусів 2.
24
5
+
+
+
3 0Перше введене число це значення змінної n=4. Інші символи це значення змінної a. Серед 4 символів, вибрані + та -. Плюсів 3, мінусів немає, тобто 0.

Приклад 2

Ввести з клавіатури будь-яких символів. Скільки серед них маленьких російських літер?
Дано: n – кількість введених символів та самі символи.
Знайти: підрахувати маленькі російські літери.

Змінні:

Вхідні:
  • n – кількість введених символів (ціле число)
  • – сам символ (символьне)
Вихідні:
  • k  кількість маленьких російських літер (ціле число)
Проміжні:
  • i – параметр циклу (ціле число)

Алгоритм

  1. Спочатку потрібно присвоїти початкове значення лічильнику k.
  2. Вводимо n – кількість символів, що будемо вводити. Це значення буде визначати кількість витків циклу.
  3. У циклі for i:=1 to n do у операторних дужках будемо виконувати такі дії:
    • Оператор readln(a) вводить символ у змінну a.
    • Якщо введений символ маленька російська літера, то збільшуємо лічильник k. Російські літери а таблиці ASCII-кодів, представлені двома діапазонами [а, п] та [р, я]. Тому кожна маленька російська літера належить або першому діапазону (a >= 'а') and (a <= 'п'), або другому (a >= 'р') and (a <= 'я').
  4. Коли цикл закінчиться, тобто будуть введені всі символів, виводиться на екран значення лічильника k.

Програма

 var i,n,k:integer; a:char;
begin
 k:=0;
 readln(n);
 for i:=1 to n do
 begin
    readln(a);
    if (a >='а')and(a <='п')or
         (a >='р')and(a <='я') then k:=k+1;
 end;
 writeln(k);
end.

Результат роботи програми

ВвідВивідПоясненняі
15
s
ж
4
ш
и
3Перше введене число це значення змінної n=5. Інші символи це значення змінної a. Серед 5 символів є англійські та російські літери та цифра. Російських літер 3
24
5
D
Z
7
0Перше введене число це значення змінної n=4. Інші символи це значення змінної a. Серед 4 символів дві англійські літери та дві цифри. Російських літер немає, тобто 0.

Варіанти задач

  1. Ввести з клавіатури n будь-яких символів. Скільки серед них „*”?
  2. Ввести з клавіатури n будь-яких символів. Скільки серед них цифр?
  3. Ввести з клавіатури n будь-яких символів. Скільки серед них „?” та „!” разом?
  4. Ввести з клавіатури n будь-яких символів. Знайти кількість не цифр.
  5. Ввести з клавіатури n будь-яких символів. Скільки серед них маленьких латинських літер?
  6. Ввести з клавіатури n будь-яких символів. Скільки серед них великих латинських літер?
  7. Ввести з клавіатури n будь-яких символів. Скільки серед них латинських літер?
  8. Ввести з клавіатури n будь-яких символів. Скільки серед них великих російських літер?
  9. Ввести з клавіатури n будь-яких символів. Скільки серед них російських літер?
  10. Ввести з клавіатури n будь-яких символів. Скільки серед них російських голосних?
  11. Ввести з клавіатури n будь-яких символів. Скільки серед них англійських голосних?
  12. Ввести з клавіатури n будь-яких символів. Чого більше літер чи цифр?
  13. Ввести з клавіатури n будь-яких символів. Підрахувати загальну кількість символів крапок та ком.
  14. Ввести з клавіатури n будь-яких символів. Підрахувати загальну кількість не цифр.
  15. Ввести з клавіатури n будь-яких символів. Порівняйте кількість символів кома та кількість символів крапка.
  16. Ввести з клавіатури n будь-яких символів. Порівняйте кількість літер та кількість цифр.
  17. Ввести з клавіатури n будь-яких символів. Порівняйте кількість латинських та російських літер.
  18. Ввести з клавіатури n будь-яких символів. Чи вірно, що серед них рівно два символи ”+”?
  19. Ввести з клавіатури n будь-яких символів. Чи можна з них скласти слово „мама”?

Немає коментарів:

Дописати коментар