Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Счетчики
Задача 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... В этом случае порядок выполнения операторов будет такой:
Не забывайте обнулять счетчик перед входом в цикл, а не то он начнет считать вам не с нуля, а бог знает с чего. Как бы вам понравилось, если бы таксист в начале поездки не обнулил счетчик? В нашем фрагменте значения счетчика печатаются при каждом выполнении цикла. Изменим задачу. Задача 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). Date: 2015-09-17; view: 433; Нарушение авторских прав |