АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Тема №19 (время – 2 мин)

Читайте также:
  1. Тема №1 (время – 1 мин)
  2. Тема №11 (время – 3 мин)
  3. Тема №12 (время – 5 мин)
  4. Тема №14 (время – 1 мин)
  5. Тема №16 (время – 3 мин)
  6. Тема №17 (время – 2 мин)
  7. Тема №18 (время – 2 мин)
  8. Тема №2 (время – 2 мин)
  9. Тема №20 (время – 6 мин)
  10. Тема №21 (время – 2 мин)
  11. Тема №22 (время – 3 мин)

Тема: Оператор присваивания в языке программирования[16].

Что нужно знать:

· переменная – это величина, которая имеет имя, тип и значение; переменная может изменяться во время выполнения программы

· оператор присваивания служит для записи значения в переменную

· если в переменную записывают новое значение, старое стирается

· знаки +, -, *, / используются для обозначения операций сложения, вычитания, умножения и деления

· запись вида a div b означает результат целочисленного деления a на b (остаток отбрасывается)

· запись вида a mod b означает остаток от деления a на b

· запись вида a:= b + 2*c + 3; означает «вычислить значения выражения справа от знака присваивания:= и записать результат в переменную a»; при этом значения других переменных (кроме a) не изменяются

· для многократного выполнения одинаковых операций используют циклы;

· цикл с переменной выполняется N раз, в этом примере переменная i принимает последовательно все значения от 1 до N с шагом 1

for i:=1 to N do begin

{ что-то делаем }

end;

· цикл с условием выполняется до тех пор, пока условие в заголовке цикла не нарушится;

while { условие } do begin

{ что-то делаем }

end;

· главная опасность при использовании цикла с условием – зацикливание; эта такая ситуация, когда цикл работает бесконечно долго из-за того, что условие все время остается истинным

Пример задания:

Определите значение переменной c после выполнения следующего фрагмента программы.

a:= 5;

a:= a + 6;

b:= –a;

c:= a – 2*b;

Решение:

43) для решения нужно использовать «ручную прокрутку» программы, то есть, выполнить вручную все действия

44) наиболее удобно и наглядно это получается при использовании таблицы, где в первом столбце записаны операторы программы, а в остальных показаны изменения переменных при выполнении этих операторов

45) здесь используются три переменные: a, b, c; до выполнения программы их значения анм неизвестны, поэтому ставим в таблице знаки вопроса:

  a b c
  ? ? ?

46) после выполнения оператора a:= 5; изменяется значение переменной a:

  a b c
  ? ? ?
a:= 5;      

47) оператор a:= a + 6; означает «вычислить значение выражения a + 6 используя текущее значение a (равное 5), и записать результат обратно в переменную a»; таким образом, новое значение равно 5 + 6 = 11:

  a b c
  ? ? ?
a:= 5;      
a:= a + 6;      

48) следующий оператор, b:= -a; изменяет значение переменной b, записывая в нее –a; учитывая, что в a записано число 11, находим, что b будет равно –11:

  a b c
  ? ? ?
a:= 5;      
a:= a + 6;      
b:= –a;   –11  

49) последняя команда, c:= a – 2*b, изменяет значение переменной c; при текущих значениях a = 11 и b = –11 результат выражения равен 11 – 2*(–11) = 33, это число и будет записано в переменную c:

  a b c
  ? ? ?
a:= 5;      
a:= a + 6;      
b:= –a;   –11  
c:= a – 2*b;      

50) таким образом, правильный ответ – 33.

Возможные ловушки и проблемы: · нельзя забывать про знак переменных и про то, что «минус на минус дает плюс»

Ещё пример задания:

Определите значение переменной c после выполнения следующего фрагмента программы.

a:= 40;

b:= 10;

b:= - a / 2 * b;

if a < b then

c:= b - a

Else

c:= a - 2 * b;

Решение:

1) для решения нужно использовать «ручную прокрутку» программы

2) выполним начальные присваивания:

  a b c
  ? ? ?
a:= 40; b:= 10;      

3) самый сложный оператор, содержащий «подводный камень»:

b:= - a / 2 * b;

не забываем, что умножение и деление имеют равный приоритет, и в такой цепочке сначала выполнится деление, а потом умножение

4) результат:

b:= - (40 / 2) * 10 = - 20 * 10 = - 200

  a b c
  ? ? ?
a:= 40; b:= 10;      
b:= - a / 2 * b;   -200  

5) очевидно, что теперь условие «a < b» ложно, поэтому выполняется оператор, стоящий после слова else: c:= a-2*b = 40 – 2*(-200) = 440.

6) Ответ: 440.

Возможные ловушки и проблемы: · нужно не забыть, что умножение и деление имеют одинаковый приоритет, то есть выполняются по порядку слева направо (если нет скобок)

Еще пример задания:

В результате выполнения фрагмента программы

while n < > 0 do begin

write (2*(n mod 10)+1);

n:= n div 10;

end;

на экран выведено число 13717. Укажите все числа, которые могли находиться в переменной n до выполнения этого цикла.

Решение:

1) прежде всего, заметим, что для вывода используется оператор write, который не переходит на следующую строку; поэтому числа в цикле будут выводиться в одной строке «вплотную» друг к другу, без промежутков

2) вспомним, что n mod 10 – остаток от деления числа на 10 – это последняя цифра числа в десятичной системе счисления;

3) операция n div 10 (деление нацело на 10) равносильна отбрасыванию последней цифры в десятичной системе счисления

4) эти две операции выполняются пока значение переменной n не станет равно нулю

5) анализируя алгоритм, можно придти выводу, что этот фрагмент программы выводит на экран числа , где – это -ая цифра с конца числа

6) подумаем, в каком интервале находится значение , если – это цифра от 0 до 9: получаем интервал от до

7) поэтому разбить цепочку 13717 на части можно следующими способами:

1 – 3 – 7 – 17

1 – 3 – 7 – 1 – 7

13 – 7 – 17

13 – 7 – 1 – 7

8) в любом варианте разбиения каждое число получено по формуле , поэтому можно сразу определить цифры соответствующих чисел по формуле :

1 – 3 – 7 – 17 0 – 1 – 3 – 8

1 – 3 – 7 – 1 – 7 0 – 1 – 3 – 0 – 3

13 – 7 – 17 6 – 3 – 8

13 – 7 – 1 – 7 6 – 3 – 0 – 3

9) вспоминаем, что цифры числа в цикле обрабатываются, начиная с последней, поэтому в ответе нужно перечислить числа 836, 3036, 8310 и 30310.

10) таким образом, правильный ответ – 836, 3036, 8310, 30310.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)