Тема : Оператор присваивания в языке программирования icon

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



НазваниеТема : Оператор присваивания в языке программирования
Дата конвертации06.10.2012
Размер133.14 Kb.
ТипДокументы
источник

© К. Поляков, 2009-2010

А8 (базовый уровень, время – 2 мин)


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

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

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

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

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

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

  • запись вида 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;

1) c = –11 2) c = 15 3) c = 27 4) c = 33

Решение:

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

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

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




    a

    b

    c




    ?

    ?

    ?

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




    a

    b

    c




    ?

    ?

    ?

    a := 5;

    5







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




    a

    b

    c




    ?

    ?

    ?

    a := 5;

    5







    a := a + 6;

    11







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




    a

    b

    c




    ?

    ?

    ?

    a := 5;

    5







    a := a + 6;

    11







    b := –a;




    –11




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




    a

    b

    c




    ?

    ?

    ?

    a := 5;

    5







    a := a + 6;

    11







    b := –a;




    –11




    c := a – 2*b;







    33

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

Возможные ловушки и проблемы:

  • можно перепутать нужную переменную, и, увидев в ответах число –11, выбрать его (поскольку b = –11)

  • нельзя забывать про знак переменных и про то, что «минус на минус дает плюс»
^

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


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

while n < > 0 do begin

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

n := n div 10;

end;

на экран выведено число 13717. Какое число хранилось до этого в переменной n?

1) 716 2) 638 3) 386 4) 836


Решение (вариант 1):

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

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

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

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

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

  6. теперь можно построить таблицу ручной прокрутки; рассмотрим первый из ответов, 716:




n

n mod 10

вывод на экран




716







n <> 0?










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




6

13

n := n div 10;

71







n <> 0?










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




1

3

n := n div 10;

7







n <> 0?










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




7

15

n := n div 10;

0







n <> 0?










здесь зеленым фоном выделено истинное условие цикла, а красным – ложное (при котором цикл будет завершен);
видим, что в этом случае на экран будет выведена цепочка 13315, не равная заданной (13717)

  1. аналогично проверяем все остальные предложенные ответы и выясняем, что для последнего числа, 836, на экран выводится цепочка 13717, совпадающая с заданной

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

Возможные ловушки и проблемы:

  • большой объем работы (нужно составить 4 таблицы)


Решение (вариант 2):

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

  2. теперь можно без таблицы построить такие цепочки для всех четырех ответов

716: 13315

638: 17713

386: 13177

836: 13717 совпадает с заданной

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

Возможные ловушки и проблемы:

  • нужно уметь анализировать работу алгоритма, «прокручивать» его в уме

  • можно забыть, что цифры числа обрабатываются в обратном порядке, начиная с последней, на это рассчитан неправильный ответ 2 (638)

  • можно попробовать раскодировать заданную цепочку 13717 «прямым ходом» (стараясь получить один из заданных ответов), но нужно учитывать, что может быть несколько вариантов такого раскодирования; цепочку 13717, например, дают еще и числа 30310, 3036.
^

Задачи для тренировки2:


  1. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 3 + 8*4;

b := (a div 10) + 14;

a := (b mod 10) + 2;

1) a = 0, b = 18 2) a = 11, b = 19 3) a = 10, b = 18 4) a = 9, b = 17

  1. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 1819;

b := (a div 100)*10+9;

a := (10*b–a) mod 100;

1) a = 81, b = 199 2) a = 81, b = 189 3) a = 71, b = 199 4) a = 71, b = 189

  1. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 42;

b := 14;

a := a div b;

b := a*b;

a := b div a;

1) a = 42, b = 14 2) a = 1, b = 42 3) a = 0, b = 588 4) a = 14, b = 42

  1. Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы:

x := 5;

y := 7;

t := x;

x := y mod x;

y := t;

1) x=2, y=5, t=5 2) x=7, y=5, t=5 3) x=2, y=2, t=2 4) x=5, y=5, t=5

  1. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

а :=6*12 + 3;

b :=(a div 10)+ 5;

a :=(b mod 10)+ 1;

1) a = 1, b = 10 2) a = 3, b = 12 3) a = 4, b = 16 4) a = 10, b = 20

  1. Определите значение целочисленных переменных x и y после выполнения фрагмента программы:

x := 336

У := 8;

x := x div y;

y := х mod у;

1) x = 42, y = 2 2) x = 36, y = 12 3) x = 2, y = 24 4) x = 24, y = 4

  1. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

а :=1686;

b :=(a div 10) mod 5;

а := а - 200*b;

1) a = 126, b = 5 2) a = 526, b = 5 3) a = 1086, b = 3 4) a = 1286, b = 3

  1. Определите значение целочисленных переменных x и y после выполнения фрагмента программы:

х := 11;

у := 5;

t := y;

у := х mod у;

x := t;

у := у + 2*t;

1) x = 11, y = 5 2) x = 5, y = 11 3) x = 10, y = 5 4) x = 5, y = 10

  1. Определите значение целочисленных переменных x и y после выполнения фрагмента программы:

х := 19;

у := 3;

z := у*2;

у := х mod у;

х := х - z;

у := у + z;

1) x = 10, y = 9 2) x = 13, y = 7 3) x = 16, y = 8 4) x = 18, y = 2

  1. Определите значение целочисленных переменных x, y и z после выполнения фрагмента программы:

х := 13;

у := 3;

z := x;

x := z div у;

у := х;

1) x = 13, y = 4, z = 4 2) x = 13, y = 13, z = 13
3) x = 4, y = 4, z = 13 4) x = 4, y = 3, z = 13

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

while n < > 0 do begin

write ( 2*(n mod 5 + 3) );

n := n div 10;

end;

на экран выведено число 10614. Какое число хранилось до этого в переменной n?

1) 529 2) 259 3) 952 4) 925

  1. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := -5;

b := 5 + 7 * a;

b := b / 2 * a;

1) 3 2) –3 3) 75 4) –75

  1. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := 5;

b := 5 - 3 * a;

b := b / 2 * a;

1) 1 2) –1 3) 25 4) –25

  1. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := 5;

b := 5 + 5 * a;

b := b / 2 * a;

1) 3 2) 5 3) 75 4) 125

  1. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := 7;

b := 7 + 3 * a;

b := b / 2 * a;

1) 2 2) 5 3) 98 4) 245

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

a := 100;

b := 30;

a := a – b*3;

if a > b then

c := a – b

else c := b – a;

1) 20 2) 70 3) –20 4) 180

  1. Определите значение переменных a и b после выполнения следующего фрагмента программы:

a := 2468;

b := (a mod 1000)*10;

a := a div 1000 + b;

1) a=22, b=20 2) a=4682, b=4680 3) a=8246, b=246 4) a=470, b=468

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

a := 6;

b := 15;

a := b – a*2;

if a > b then

c := a + b

else c := b – a;

1) –3 2) 33 3) 18 4) 12

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

a := -5;

b := 14;

b := b + a*2;

if a > b then

c := a + b

else c := b – a;

1) –1 2) 23 3) 13 4) 9

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

a := -5;

b := 3;

a := a - b*2;

if a > b then

c := b - a

else c := a – b;

1) 14 2) –14 3) 6 4) –6

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

a := -5;

b := -3;

a := a - b*3;

if a > b then

c := b + a

else c := a – b;

1) 1 2) –9 3) 3 4) –11

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

a := -2;

b := -3;

a := b + a*3;

if a < b then

c := a - b

else c := b – a;

1) 12 2) –6 3) 6 4) –12


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

a := 40;

b := 10;

b := a - 2*b;

if a < 2*b then

c := a

else c := b;

1) 60 2) 40 3) 20 4) 10

  1. Определите значение переменной c после выполнения следующего фрагмента программы, в котором a, b и с – переменные вещественного (действительного) типа:

a := 120;

b := 100;

a := a + b / 2;

if b < a / 2 then

c := b + a

else c := b + a / 2;

1) с = 105 2) с = 160 3) с = 185 4) с = 270

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

S:=1; i:=1;

while i < 5 do begin

S := S + i*(i+1);

i := i + 1;

end;

1) S = 1 2) S = 11 3) S = 21 4) S = 41

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

S:=0; i:=7;

while i > 1 do begin

S := S + i div 2;

i := i - 1;

end;

1) S = 0 2) S = 7 3) S = 12 4) S = 24

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

P:=1; i:=3;

while i <= 9 do begin

P := P * (i div 3);

i := i + 1;

end;

1) 1 2) 3 3) 9 4) 24

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

a:= 7;

a:= a - 4;

b:= -a;

c:= -a + 2*b;

1) -3 2) -9 3) -13 4) -21



1 Здесь рассматривается только язык Паскаль, который является наиболее распространенным в школах России.

2 Источники заданий:

  1. Демонстрационные варианты ЕГЭ 2004-2011 гг.

  2. Гусева И.Ю. ЕГЭ. Информатика: раздаточный материал тренировочных тестов. — СПб: Тригон, 2009.

  3. Крылов С.С., Лещинер В.Р., Якушкин П.А. ЕГЭ-2010. Информатика. Универсальные материалы для подготовки учащихся / под ред. В.Р. Лещинера / ФИПИ. — М.: Интеллект-центр, 2010.

  4. Якушкин П.А., Ушаков Д.М. Самое полное издание типовых вариантов реальных заданий ЕГЭ 2010. Информатика. — М.: Астрель, 2009.

  5. М.Э. Абрамян, С.С. Михалкович, Я.М. Русанова, М.И. Чердынцева. Информатика. ЕГЭ шаг за шагом. – М.: НИИ школьных технологий, 2010.




Похожие:

Тема : Оператор присваивания в языке программирования iconВопросы к зачёту по разделу «Основы алгоритмизации и программирование на языке Pascal»
Условный оператор. (блок-схемы,описание на языке программирования ). Оператор выбора
Тема : Оператор присваивания в языке программирования iconТема : Обработка массива (написать программу из 10-15 строк на языке программирования или алгоритм на естественном языке)
Тема: Обработка массива (написать программу из 10-15 строк на языке программирования или алгоритм на естественном языке)
Тема : Оператор присваивания в языке программирования iconРешение задач Задание Оператор присваивания Задание 1
Определите значение целочисленных переменных x и y после выполнения фрагмента программы
Тема : Оператор присваивания в языке программирования iconОсновы программирования
В схематическом виде отразите изменения значений в ячейках, соответствующих переменным а и в в ходе последовательного выполнения...
Тема : Оператор присваивания в языке программирования iconТема урока: «Сложение и вычитание дробей с разными знаменателями»
Эта тема является одной их сложнейших тем в курсе математики. Моё желание помочь детям её освоить в интересной форме привело к созданию...
Тема : Оператор присваивания в языке программирования iconТема: Информационные модели систем управления
Цель: рассмотреть принцип работы систем управления без обратной связи в процессе разработки компьютерной модели на языке программирования...
Тема : Оператор присваивания в языке программирования iconТема: Введение в язык программирования Basic
Цель: ввести понятие языка программирования, переменной, познакомить с операторами языка и арифметическими операциями
Тема : Оператор присваивания в языке программирования iconТема : Работа с массивами и матрицами в языке программирования
Представим массив в виде квадратной таблицы, в которой для элемента массива A[i,j] величина I является номером строки, а величина...
Тема : Оператор присваивания в языке программирования iconРазработка урока информатики Тема "условный оператор", 8 класс учитель Давыдова Елена Владимировна, средняя общеобразовательная школа №444 с углубленным изучением математики, информатики, физики
Познакомиться с новым типом оператора языка Turbo Pascal – условный оператор, его особенностями исполнения
Тема : Оператор присваивания в языке программирования iconТема: Информационные модели управления объектами
Цели: познакомить учащихся с системами управления с обратной и без обратной связи. Разработать проект «Системы управления без обратной...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©lib2.podelise.ru 2000-2013
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы