Объяснение:
Задание 1
program bukva;
const R=[' ','.',',',';',':','?','!','-']; // разделители
var
s,bukv:string;
i,kol,len:integer;
procedure UpCaseRus(var s:string);
{русские в верхний регистр}
var i:integer;
begin
for i:=1 to length(s) do
if s[i] in ['а'..'п'] then s[i]:=chr(ord(s[i])-32)
else if s[i] in ['р'..'я'] then s[i]:=chr(ord(s[i])-80)
else if s[i]='ё' then s[i]:='Ё';
end;
begin
readln(s);
readln(bukv);
UpCaseRus(s);
UpCaseRus(bukv);
For i:=length(s) downto 2 do
if ((s[i] in R) and (s[i-1] in R)) then delete(s,i,1);
len:=length(s);
kol:=0;
for i:=len downto 1 do
begin
if s[i] in R then
if s[i+1]=bukv then kol:=kol+1;
end;
if s[1]=bukv then kol:=kol+1;
writeln('Слов на букву '+bukv+' ',kol);
readln;
end.
Задание 2
const r=[' ','.',',',';',':','?','!','-'];
var
s:string;
i,kol,d:integer;
begin
readln(s);
len:=length(s);
kol:=0; d:=0;
For i:=length(s) downto 2 do
if ((s[i] in r) and (s[i-1] in r)) then delete(s,i,1);
for i:=1 to length(s) do
begin
if s[i] in r then kol:=kol+1
else if (s[i] in ['0'..'9']) then d:=d+1;
end;
writeln('Слов всего ',kol+1);
writeln('Цифр в тексте ',d);
readln;
end.
Цикли — це інструкції, що виконують одну і ту ж саму послідовність дій, поки діє задана умова.
У реальному житті ми досить часто стикаємося з циклами. Наприклад, ходьба людини — цілком циклічне явище: крок лівою, крок правою, знову лівою-правою і т.д., поки не буде досягнута певна мета (наприклад, зупинка чи магазин). У комп'ютерних програмах поряд з інструкціями розгалуження (тобто вибором шляху дії) також існують інструкції циклів (повторення дії). Якби інструкцій циклу не існувало, довелося б багато разів вставляти в програму один і той же код підряд стільки разів, скільки потрібно виконати однакову послідовність дій.
Послідовніть дій, яка виконується циклічно, називається "проходом циклу" або "ітерація циклу".
while
Універсальним організатором циклу в Python є конструкція while. Слово "while" з англійської мови перекладається як "доки". А увесь цикл можна пояснити словами:
доки логічний вираз має значення True, доти будуть виконуватись певні операції
Заголовок конструкції виглядає так:
while condition:
'condition' — це логічний вираз. За заголовком конструкції while йде її тіло, тобто блок коду, який буде виконуватись циклічно.
Розглянемо приклад.
Припустимо у нас є список цілих чисел, і ми хочемо кожне число з цього списку зробити вдвічі більшим.
Логічно перебрати усі елементи списку по одному, помножити кожен на 2 а результат знову помістити у список на те ж саме місце.
До елементу списка ми можемо отримати доступ за до його індекса.
Індекси списку можуть приймати значення від 0 до його довжини.
l = [1,2,3,4,5,6,7] # список чисел
index = 0 # починаємо з індекса 0
while index <= len(l) - 1: # доки індекс не перевищує довжину списка мінус 1
l[index] = 2 * l[index] # множимо елемент з індексом index на 2
index = index + 1 # переходимо до наступного елементу
print(l) # ну і подивимось що у нас вийшло
for¶
Перебір послідовностей по елементах — доволі розповсюджена задача у програмуванні. І в Python для зручного перебору послідовностей існує ще один вид циклів: for.
Заголовок інструкції 'for' виглядає так:
for var in sequence:
'sequence' — це та послідовніть, яку треба перебрати по елементах.
Після слова 'for' зразу вказується змінна. У цю змінну при кожній ітерації (кожному проході циклу) буде попадати черговий елемент з послідовності 'sequence'.
За заголовком інструкції for йде її тіло — блок коду який буде виконуватись при кожній ітерації.
Розглянемо простий приклад: треба вивести усі елементи певної послідовності. У заданій послідовності ми переберемо усі елементи, один за одним, і виведемо його значення:
>>> l = [1,2,3,4,5]
>>> for i in l: # при кожній ітерації в 'i' буде черговий елемент списку 'l'
... print(i)
...
1
2
3
4
5
>>> for i in 'abcd':
... print(i)
...
a
b
c
d
>>>
Розглянемо ще приклад.
Є список цілих чисел. Треба отримати новий список у який буде входити кожен другий елемент з першого списку помножений на 2.
l = [1,2,3,4,5,6,7] # початковий список чисел
res = [] # результуючий список, поки що у ньому нічого немає
for number in l[1::2]: # зразу беремо тільки кожен другий елемент початкового списку
res.append( 2*number ) # додаємо до результуючого списку число з початкового помножене на 2
print(res) # ну і подивимось що у нас вийшло
тройной - весь текст