КАТЕГОРИИ: Архитектура-(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) |
Счетчики. Из 2.2 мы знаем, что по ошибочной программе компьютер выдает ошибочные результаты
Роль ошибок Из 2.2 мы знаем, что по ошибочной программе компьютер выдает ошибочные результаты. Например, если в нашей программе мы вместо V:=S*visota напишем V:=S+visota, то результаты будут такими: Площадь пола=300 Объем зала=304 Площадь пола=600 Объем зала=605 Площадь пола=50 Объем зала=53 Если случайно вместо for i:=1 to N написать for i:=2 to N то результаты будут такими: Площадь пола=300 Объем зала=1200 Площадь пола=600 Объем зала=3000 На этом программа закончит работу и не спросит размеров третьего зала. Вам не кажется странным, что она посчитала 1 и 2 залы, а не 2 и 3? Если кажется, то учтите, что пользователь ничего не знает об ошибке в программе, а компьютер не говорит ему, размеры какого по счету зала ему нужно вводить. Задания 44-45: Определите без компьютера, что будет, если 44) строку for i:=1 to N do begin поместить под строкой ReadLn (dlina, shirina, visota) 45) поменять местами строки WriteLn(‘Площадь пола=’,S,’ Объем зала=‘,V)и end
Если задания не получаются, введите программы в компьютер и используйте отладочный режим. Задача 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;
Дата добавления: 2014-12-27; Просмотров: 410; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |