Счетчики
Оценка 4.9

Счетчики

Оценка 4.9
docx
информатика
06.05.2020
Счетчики
0.1. Счетчики
40.docx

0.1. Счетчики

Задача 1: В компьютер с клавиатуры вводятся числа. Компьютер после ввода каждого числа должен печатать, сколько среди них уже введено положительных.

Фрагмент, решающий задачу:

            c:=0;                                        {Обнуляем счетчик}

m:        ReadLn(a);                               {Вводим очередное число}

            if a>0 then c:=c+1;

            WriteLn('Из них положительных - ' ,c);

            goto m

Пояснения: В 6.6 мы придумали переменную i, которую назвали счетчиком циклов. Здесь мы тоже придумали переменную c. Она у нас выполняет роль счетчика положительных чисел. Сердце счетчика - оператор c:=c+1. Именно он в нужный момент увеличивает счетчик на 1. Но и без if a>0 then тоже никак нельзя. Если бы его не было, то c подсчитывал бы все числа без разбору, то есть был бы обыкновенным счетчиком циклов. В нашем же фрагменте увеличение с на 1 выполняется не всегда, а лишь при положительном а.

Пусть мы вводим числа 8, -2, 10 . . .  В этом случае порядок выполнения операторов будет такой:

Оператор

а

с

Печать

c:=0

?

0

 

ReadLn(a)

8

0

 

if a>0 then c:=c+1

8

1

 

WriteLn('Из них положительных - ' ,c)

8

1

Из них положительных 1

goto m

8

1

 

ReadLn(a)

-2

1

 

if a>0 then c:=c+1

-2

1

 

WriteLn('Из них положительных - ' ,c)

-2

1

Из них положительных 1

goto m

-2

1

 

ReadLn(a)

10

1

 

if a>0 then c:=c+1

10

2

 

WriteLn('Из них положительных - ' ,c)

10

2

Из них положительных 2

goto m

10

2

 

Не забывайте обнулять счетчик перед входом в цикл, а не то он начнет считать вам не с нуля, а бог знает с чего. Как бы вам понравилось, если бы таксист в начале поездки не обнулил счетчик?

В нашем фрагменте значения счетчика печатаются при каждом выполнении цикла. Изменим задачу.

Задача 2: В компьютер вводится ровно 200 чисел. Компьютер должен подсчитать и один раз напечатать, сколько среди них положительных.

Программа:

VAR   c,i :Integer;

          a   :Real;

BEGIN

     c:=0;                               {Обнуляем счетчик}

     for i:=1 to 200 do begin

          ReadLn(a);  

          if a>0 then c:=c+1

     end {for};

     WriteLn('Из них положительных - ' ,c)

END.

Пояснения: Путь рассуждений здесь тот же, что и в первой задаче. В результате применения оператора  for  фрагмент   ReadLn(a);if a>0 then c:=c+1   выполняется ровно 200 раз, благодаря чему счетчик с накапливает нужное значение. Оператор    WriteLn    выполняется только один раз и печатает это значение.

Совет: Если вы запускаете эту программу в компьютере, то с числом 200 возиться крайне долго. Поменяйте его на 3 или 4. Смысл программы от этого не изменится.

 

Задание 46: Что будет, если

1)    Вместо c:=0 написать c:=10.

2)    Вместо c:=c+1 написать c:=c+2.

3)    Строки end {for} и WriteLn поменять местами.

4)    Строки c:=0 и for поменять местами.

5)    Строки for и ReadLn поменять местами.

 

Задача 3: В компьютер один за другим вводятся произвольные символы. Ввод заканчивается символом "/". Подсчитать, какой процент от общего числа введенных символов составляют символ "W" и символ ":" по отдельности.

Здесь мы организуем три счетчика одновременно: сW и сDv - для подсчета букв W и двоеточий соответственно, а также i - счетчик циклов, то есть общего числа введенных символов.

Программа:

VAR   i,cW,cDv, procent_W, procent_Dv   : Integer;

          simvol                                           :Char;

begin

     i:=0;   cW:=0;   cDv:=0;                       {Обнуляем все три счетчика}

     repeat                                               {Повторяй цикл}

          ReadLn (simvol);                                {Введи символ}

          i:=i+1;                                                {«Посчитай» его}

          case simvol of

              'W' :cW:=cW+1;                             {Если это W, увеличь счетчик символов W}

              ':'  :cDv:=cDv+1                            {Если это :, увеличь счетчик символов :}

          end

     until simvol = '/';                                {пока не наткнешься на символ /}

     procent_W        :=Round(100*cW/i);    {Вычисляй процент символов W}

     procent_Dv       :=Round(100*cDv/i);   {Вычисляй процент символов :}

     WriteLn(procent_W,'   ',procent_Dv)

end.

Задание 47: В компьютер вводится N чисел. Подсчитать по отдельности количество отрицательных, положительных и тех, что превышают число 10.

Задание 48: В компьютер вводятся пары целых чисел. Подсчитать, сколько среди них пар, дающих в сумме число 13. Подсчет закончить после ввода пары нулей.

Напомню, что пару чисел можно ввести оператором ReadLn(a,b).


 

Скачано с www.znanio.ru

Счетчики Задача 1: В компьютер с клавиатуры вводятся числа

Счетчики Задача 1: В компьютер с клавиатуры вводятся числа

Совет: Если вы запускаете эту программу в компьютере, то с числом 200 возиться крайне долго

Совет: Если вы запускаете эту программу в компьютере, то с числом 200 возиться крайне долго
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
06.05.2020
Посмотрите также: