Fetyukov
?>

Паскаль авс через цикл for. дана строка.определить сколько букв "к" в последнем слове.

Информатика

Ответы

aksmobile
Var   i, n, k: integer;   s, c: string; begin   writeln('введите текст');   readln(s);   n : = length(s);   k : = 0;   i : = n;   repeat       c : = copy(s, i, 1);       if (c = 'к') or (c = 'к') then k : = k + 1;       i : = i - 1;   until c = ' ';   writeln('в последнем слове буква "k" встречается ', k, ' раз(а)') end. результат прогона тестового примера в pascalabc.net: введите текст кукушка кукует, а петух - кукарекает! в последнем слове буква "k" встречается 3 раз(а)
mayorovmisc6

ответ:

а9)1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 80 81 82 83 85 88 91 94 97 100

a10) 28

объяснение:

а9

k: =0

ты проверяешь 100 чисел от 1 до 100 (строка про i for i: =1 to 100 do) и ниже у тебя 2 условия

if (i div 4 =20) or (i mod 3 = 1) then

k: =k+1

это условие говорит, что если i div 4=20 или i mod 3=1 тогда ты k увеливаешь на 1. то есть если число подходит хотя бы по 1 из условий ты увеливаешь k на единицу

div это целая часть от деления или по другому чтоб было понятнее то что в числе до запятой. допустим 7 div 3 =2 так как 7 делить на 3=2,33 но целая часть это 2

так вот по нашему первому условию подойдут числа 80 81 82 83 потому что их целая часть от деления на 4 будет равна 20

во втором условии i mod 3=1       mod это остаток от деления но это уже не то что после запятой а именно остаток. как столбиком поделишь то что будет в остатке это mod. например   10 mod 3 =1   так как 10 делить на 3 это будет 3 целых и 1 в остатке.

так вот по нашему второму условию подходят все числа от 1 до 100 в которых после деления на 3 останется 1. это числа 1 4 7 10 82 85 88 91 94 97 100. заметь что число 82 подходило и по первому условию так что его 2 раза не считаем. и после   каждого   подходящего такого числа мы к увеливаем на 1. всего таких чисел 37 а нам надо вывести значение к которое   будет равно количеству этих чисел. сами числа написаны в ответе

а10

так как s не присвоили никакого значения значит s изначально 0

даны элементы массива b[1] b[2] b[3] b[4] b[5] b[6] b[7]

k: =-5

ты снова проверяешь 7 элементов (строка for n: =1 to 7 do) сначала первый потом 2 потом 3 и тд до 7

b[n] сначала будет b[1] так как n cначала проверяешь первый элемент массива

b[n]: =k+n;

то есть сначала повторяюсь проверяешь b[1]

b[1]: = -5+1=-4

k: =k+1 то есть k: =-5+1 =-4

s: =s+2*b[1]=0+2*(-4)=-8

теперь проверяем n=2

b[2]: = k+n   k уже равно -4 а n равно 2

b[2] : =-4+2 =-2

k: =-4+1=-3

s: = -8+2*(-2)=-12

b[3]=-3+3=0

k: =-2

s: =-12+2*0=-12

b[4]: =-2+4=2

k: =-1

s: =-12+2*2=-8

b[5]: =-1+5=4

k: =0;

s: =-8+2*4=0

b[6]: =6

k: =1

s: =0+2*6=12

b[7]=1+7=8

k: =2

s: =12+2*8=28

в итоге значение s 28

надеюсь, что понятно объяснил. и заранее извиняюсь за грамотность-лениво столько писать и расставлять запятые)

ВладимировичСтанислав

var s : string; symb : char; i : longint; begin  readln(s);   readln(symb);   if pos(symb,s)=0 then writeln('в этом слове нет этого символа')  else begin                i: =0;                 while pos(symb,s)< > 0 do begin                                                                    write(pos(symb,s)+i,' ');                                                                     i: =i+1;                                                                     delete(s,pos(symb,s),1);                                                                 end;             end;   writeln;   writeln(i); end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Паскаль авс через цикл for. дана строка.определить сколько букв "к" в последнем слове.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

elenak26038778
marinadetsad
info40
diannaevaaa
potapin
Kuznetsova702
pozhidaevgv
Avdeeva Yelizaveta
МихайловнаLarisa1150
pucha5261
Васильев1028
artemiusst
waspmoto6188
Shamil
впвыпвып-Зуйков629