Процентное соотношение строчных и прописных букв

Задача

Дан текст. Определите процентное отношение строчных и прописных букв к общему числу символов в нем.

Решение

 

Описание переменных: 

  • str - строка;
  • len - количество символов в строке;
  • let_s, let_b - количество строчных (маленьких) и прописных (больших) букв.

Алгоритм решения задачи: 

  1. С помощью функции length() определить общее количество символов в строке.
  2. Посимвольно перебирая строку:
    1. если очередной символ принадлежит пределу от 'a' до 'z', то увеличивать на 1 значение let_s;
    2. если очередной символ принадлежит пределу от 'A' до 'Z', то увеличивать на 1 значение let_b.
  3. Посчитать процентное соотношение маленьких букв по формуле (let_s / len) * 100.
  4. Выполнить аналогичный расчет для больших букв.

Программа на языке Паскаль: 

 

var
	str: string;
	i, len, let_b, let_s: byte;
begin
	readln(str);
	len := length(str);
	let_b := 0;
	let_s := 0;
	for i:=1 to len do
		if (str[i] >= 'a') and  (str[i] <= 'z') then
			let_s := let_s + 1
		else
			if (str[i] >= 'A') and  (str[i] <= 'Z') then
				let_b := let_b + 1;
 
	writeln((let_s/len)*100:5:2);
	writeln((let_b/len)*100:5:2);
	writeln;
end.

 

Пример выполнения кода:

Rff-
50.00
25.00

 

Тема

Строки

Уровень

Простые задачи

Комментарии

Ввести строку S, содержащую строчные и прописные буквы. Вывести:

  • символы и их коды для этой строки;
  • строку, преобразовав все символы в верхний регистр;
  • строку, преобразовав все символы в нижний регистр.
var
    s: string;
    i, l: byte;
    a: byte;
begin
    readln(s);
    l := length(s);
    for i:=1 to l do
        writeln(s[i],' - ',ord(s[i]));
    a := ord('a') - ord('A');
    for i:=1 to l do
        if (s[i] >= 'A') and (s[i] <= 'Z') then
            write(chr(ord(s[i]) + a))
        else
            write(s[i]);
    writeln;
    for i:=1 to l do
        if (s[i] >= 'a') and (s[i] <= 'z') then
            write(chr(ord(s[i]) - a))
        else
            write(s[i]);
    writeln;
end.

Пример выполнения:

one 1 TwO 2 tHrEe
o - 111
n - 110
e - 101
  - 32
1 - 49
  - 32
T - 84
w - 119
O - 79
  - 32
2 - 50
  - 32
t - 116
H - 72
r - 114
E - 69
e - 101
one 1 two 2 three
ONE 1 TWO 2 THREE