Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сумматоры




End.

End

Begin

END.

BEGIN

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

for i:=1 to 200 do begin

ReadLn(a);

if a>0 then c:=c+1

end {for};

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

Пояснения: Путь рассуждений здесь тот же, что и в первой задаче. В результате применения оператора 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;

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

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

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

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

case simvol of

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

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

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

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

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

WriteLn(procent_W,' ',procent_Dv)

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

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

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

Если вы поняли идею счетчика, то понять идею сумматора вам будет нетрудно. Посмотрим, как будет работать следующий фрагмент:

s:=0; {Обнуляем сумматор. Это не менее важно, чем обнулить счетчик}

m: ReadLn(a);

s:=s+a; {Увеличиваем сумматор}

WriteLn(‘Сумма=’, s);

goto m;

 

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

Оператор а s Печать
s:=0 ?    
ReadLn(a)      
s:=s+a      
WriteLn(‘Сумма=',s)     Сумма=8
goto m      
ReadLn(a)      
s:=s+a      
WriteLn(‘Сумма=',s)     Сумма=12
goto m      
ReadLn(a)      
s:=s+a      
WriteLn(‘Сумма=',s)     Сумма=22
goto m      
……….      

Как видите, в ячейке s накапливается сумма вводимых чисел a, поэтому назовем эту ячейку сумматором. Отличие сумматора от счетчика в том, что счетчик увеличивается на 1 оператором c:=c+1, а сумматор - на суммируемое число оператором s:=s+a.

Задача: В компьютер вводится N чисел. Вычислить и один раз напечатать их сумму.

Программа:

VAR i,N:Integer;

a,s:Real;




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 395; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.