какого оператора цикла не существует
Ответы на тест 3 по Информатике 8 класс
Ответы на тест 3 по Информатике 8 класс
«Ответы на тест 3 по Информатике 8 класс» — это пособие для родителей для проверки правильности ответов обучающихся детей (ГДЗ) на «Тестовые вопросы для самоконтроля», указанные в учебнике Информатики в конце 3-й главы. Как утверждают авторы учебника (Л.Л.Босова, А.Ю.Босова) в конце каждой главы приведены тестовые задания, которые помогут оценить, хорошо ли учащиеся освоили теоретический материал и могут ли они применять свои знания для решения возникающих проблем.
Ответы на вопросы помогут родителям оперативно проверить выполнение указанных заданий.
Разработчиком языка Паскаль является:
а) Блез Паскаль
б) Никлаус Вирт
в) Норберт Винер
г) Эдсгер В. Дейкстра
Правильный ответ: б) Никлаус Вирт
Что из нижеперечисленного не входит в алфавит языка Паскаль?
а) латинские строчные и прописные буквы
б) служебные слова
в) русские строчные и прописные буквы
г) знак подчёркивания
Правильный ответ: в) русские строчные и прописные буквы
Какая последовательность символов не может служить именем в языке Паскаль?
а) _mas
б) maS1
в) d2
г) 2d
Правильный ответ: г) 2d
Вещественные числа имеют тип данных:
а) real
б) integer
в) boolean
г) string
Правильный ответ: а) real
В программе на языке Паскаль обязательно должен быть:
а) заголовок программы
б) блок описания используемых данных
в) программный блок
г) оператор присваивания
Правильный ответ: в) программный блок
Какого раздела не существует в программе, написанной на языке Паскаль?
а) заголовка
б) примечаний
в) описаний
г) операторов
Правильный ответ: б) примечаний
Языковые конструкции, с помощью которых в программах записываются действия, выполняемые в процессе решения задачи, называются:
а) операндами
б) операторами
в) выражениями
г) данными
Правильный ответ: б) операторами
Разделителями между операторами служит:
а) точка
б) точка с запятой
в) пробел
г) запятая
Правильный ответ: б) точка с запятой
Описать переменную — это значит указать её:
а) имя и значение
б) имя и тип
в) тип и значение
г) имя, тип и значение
Правильный ответ: б) имя и тип
В данном фрагменте программы:
program error;
begin
SuMmA:=25–14;
end.
ошибкой является:
а) некорректное имя программы
б) не определённое имя переменной
в) некорректное имя переменной
г) запись арифметического выражения
Правильный ответ: б) не определённое имя переменной
Какая клавиша нажимается после набора последнего данного в операторе read?
а) Enter
б) точка с запятой
в) пробел
г) Ctrl
Правильный ответ: а) Enter
При присваивании изменяется:
а) имя переменной
б) тип переменной
в) значение переменной
г) значение константы
Правильный ответ: в) значение переменной
Для вывода результатов в Паскале используется оператор
а) begin
б) readln
в) write
г) print
Правильный ответ: в) write
Для вычисления квадратного корня из х используется функция:
а) abs (х)
б) sqr (х)
в) sqrt (х)
г) int (х)
Правильный ответ: в) sqrt (х)
Для генерации случайного целого числа из интервала [10, 20) необходимо использовать выражение:
а) random*20
б) random(20)
в) random(10)+10
г) random(10)*2
Правильный ответ: в) random(10)+10
В каком из условных операторов допущена ошибка?
а) if b=0 then writeln (‘Деление невозможно.’);
б) if a b then max:=a else max:=b;
r) if (a>b) and (b>0) then c:=a+b;
Правильный ответ: б) if a b then c:=a–b else c:=b–a;
Правильный ответ: а) 20
Условный оператор
if a mod 2=0 then write (‘Да’) else write (‘Нет’)
позволяет определить, является ли число а:
а) целым
б) двузначным
в) чётным
г) простым
Правильный ответ: в) чётным
Какого оператора цикла не существует в языке Паскаль?
а) for
б) while
в) repeat…until
г) loop
Правильный ответ: г) loop
Цикл в фрагменте программы
р: =2;
repeat
р:=р*0.1
until р 0 do begin
s:=s+i;
i:=i-l;
end;
а) s = 0, i = –1
б) s = 5, i = 0
в) s = 15, i = 5
г) s = 15, i = 0
Правильный ответ: г) s = 15, i = 0
Выберите фрагмент программы, в котором ищется произведение 1*2*3*4*5:
а) р:=0; i :=1; while i 5 do begin p:=p*i; i:=i+1 end;
Циклы в Паскале
При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.
В языке программирования Паскаль существует три вида циклических конструкций.
Цикл for
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).
В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.
Цикл for существует в двух формах:
Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.
Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.
Цикл while
Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.
Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.
Цикл repeat
Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.
В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.
В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.
Какого оператора цикла не существует
Оператор после do будет выполняться до тех пор, пока логическое выражение принимает истинное значение (True). Логическое выражение является условием возобновления цикла. Его истинность проверяется каждый раз перед очередным повторением оператора цикла, который будет выполняться лишь до тех пор, пока логическое выражение истинно. Как только логическое выражение принимает значение ложь (False), осуществляется переход к оператору, следующему за while.
Выражение оценивается до выполнения оператора, так что если оно с самого начала было ложным (False), то оператор не будет выполнен ни разу.
Итерационные циклы с постусловием
Операторы между словами repeat и until повторяются, пока логическое выражение является ложным (False). Как только логическое выражение становится истинным (True), происходит выход из цикла.
Так как выражение оценивается после выполнения операторов, то в любом случае операторы выполнятся хотя бы один раз.
Арифметические циклы
Оператор for вызывает оператор, находящийся после слова do, по одному разу для каждого значения в диапазоне от значения 1 до значения 2.
Переменная цикла, начальное и конечное значения должны иметь порядковый тип. Со словом to, значение переменной цикла увеличивается на 1 при каждой итерации цикла. Со словом downto, значение переменной цикла уменьшается на 1 при каждой итерации цикла. Не следует самостоятельно изменять значение управляющей переменной внутри цикла.
Операторы языка программирования
Оператор — это элемент языка, задающий полное описание действия, которое необходимо выполнить. Каждый оператор представляет собой законченную фразу языка программирования и определяет некоторый вполне законченный этап обработки данных. В состав операторов могут входить служебные слова, данные, выражения и другие операторы. В английском языке данное понятие обозначается словом “statement”, означающим также “предложение”.
Каждый оператор в любом языке программирования имеет определенный синтаксис и семантику. Под синтаксисом оператора понимается система правил (грамматика), определяющая его запись с помощью элементов алфавита данного языка, в который наряду с различными символами входят, например, и служебные слова. Под семантикой оператора понимают его смысл, т.е. те действия, которым соответствует запись того или иного оператора. Например, запись i := i + 1 является примером синтаксически корректной записи оператора присваивания в языке Pascal, семантика которого в данном случае такова: извлечь значение ячейки памяти, соответствующей переменной i, сложить его с единицей, результат записать в ту же ячейку памяти.
В большинстве процедурных языков программирования набор операторов практически одинаков и состоит из оператора присваивания, операторов выбора, операторов цикла, оператора вызова процедуры, операторов перехода. Иногда выделяют также пустой (отсутствие действия) и составной операторы. Многие операторы являются способом представления определенных алгоритмических конструкций (см. “Алгоритмические конструкции” ) в языке программирования. Рассмотрим группы операторов подробнее, используя синтаксис языка Pascal.
Оператор присваивания
Присваивание — это действие компьютера, в результате которого переменная получает значение вычисленного выражения (оно помещается в соответствующую переменной ячейку памяти). Для описания такого действия в языках программирования существует оператор присваивания.
В общем виде оператор присваивания записывается так:
Например, в языке Pascal в качестве знака присваивания используется комбинация символов :=. В ряде других языков — знак равенства.
Результатом выполнения оператора присваивания является изменение состояния данных: все переменные, отличные от переменной, стоящей в левой части оператора присваивания, не меняют своего значения, а указанная переменная получает значение выражения, стоящего в правой части оператора присваивания. В большинстве случаев требуется, чтобы тип выражения совпадал с типом переменной. Если это не так, то оператор либо считается синтаксически некорректным, либо производится преобразование типа выражения к типу переменной (см. “Типы данных” ).
Операторы выбора
По-другому эти операторы называют условными операторами. Условные операторы используются для программирования алгоритмов, содержащих алгоритмическую конструкцию ветвление.
В языках программирования имеется несколько видов условных операторов. Полный условный оператор соответствует алгоритмической структуре полного ветвления:
В языке программирования соответствующий условный оператор имеет вид:
if B then S1 else S2
Если выражение B, которое вычисляется в начале выполнения условного оператора, имеет значение “истина”, то будет выполняться оператор S1, в противном случае — оператор S2. Операторы S1 и S2 могут быть составными.
Алгоритмическая структура неполного ветвления реализуется с помощью неполного условного оператора, который имеет вид:
Здесь B — логическое выражение, а S — произвольный оператор. Оператор S будет выполняться, если выражение B окажется истинным.
Если условный оператор реализует всего две ветви выбора (“да” и “нет”), то с помощью оператора варианта (case-оператора) можно запрограммировать многоветвящуюся структуру. Оператор варианта имеет вид:
Выполняется данный оператор так: значение выражения E ищется среди перечисленных в записи оператора значений V1, V2, …, Vn, и если такое значение находится, то выполняется соответствующий оператор S1, S2, …, Sn.
В разных языках программирования синтаксис и даже семантика перечисленных операторов могут отличаться, но возможности, предоставляемые программисту подобными конструкциями, примерно одинаковы.
Пример 1. В статье “Алгоритмические конструкции” 2 был приведен пример записи алгоритма решения обобщенного квадратного уравнения с помощью конструкций ветвления. Приведем фрагмент программы на языке Pascal, реализующий этот же алгоритм:
if c = 0 then writeln(‘x — любое’)
else writeln(‘нет корней’)
В цикле с постусловием тело цикла предшествует условию В. В отличие от цикла с предусловием здесь В — это условие окончания цикла. Оператор цикла с постусловием в Паскале имеет вид:
При такой организации цикла тело цикла S хотя бы один раз обязательно выполнится.
Практически во всех процедурных языках существует оператор цикла c параметром. Схематично его можно представить так:
Здесь значение переменной (параметра цикла) меняется от значения выражения E1 до E2 с шагом E3. Для каждого такого значения параметра цикла выполняется оператор S. В языке Pascal понятие шага в описании этого оператора отсутствует, а сам шаг для целочисленного параметра цикла может быть равен либо 1, либо –1. Оператор “цикл с параметром” используется для программирования циклов с заданным числом повторений. Для программирования итерационных циклов (число повторений которых заранее неизвестно) он не годится.
Оператор вызова процедуры
В статье “Подпрограммы” подробно рассказывается о таком виде подпрограмм, как процедуры. Стандартные подпрограммы языка программирования, которые входят в одну из библиотек подпрограмм, а также пользовательские подпрограммы, описанные внутри данного блока, вызываются с помощью оператора вызова процедуры:
Здесь E1,E2,…,En — переменные или выражения, представляющие собой фактические параметры обращения к процедуре. Наиболее часто используемыми стандартными процедурами являются процедуры ввода и вывода данных (read и write в Pascal).
Вызов процедуры семантически эквивалентен выполнению блока, описанного в качестве тела процедуры, после передачи в него начальных значений некоторых переменных (параметров-значений) или замены имен некоторых переменных (параметров-переменных) на имена фактических переменных, указанных при вызове процедуры.
Пример 3. Пусть у нас описана процедура abc:
procedure abc(a,b:integer;var c: integer);
Вызов этой процедуры abc(2,3,x) эквивалентен блоку действий:
Операторы перехода
Наиболее известным в данной группе операторов является оператор безусловного перехода goto. Если ко всем или некоторым уже имеющимся операторам программы добавить метки, то в программе становится возможным использовать оператор перехода вида:
Метка в данном случае соответствует началу того оператора, с которого должно продолжиться выполнение программы. Такой оператор позволяет записывать в языке программирования алгоритмы, имеющие сколь угодно сложную структуру. Но зачастую использование безусловного перехода неоправданно, т.к. ведет к запутанной, плохо читаемой программе. Практически единственным осмысленным применением оператора goto является выход сразу из нескольких вложенных циклов, например, при обработке двухмерных массивов.
Пример 4. Пусть нам требуется определить, есть ли в двухмерном массиве a элемент, равный 0:
if a[i,j] = 0 then begin
1: if b then write(‘есть’) else write(‘нет’);
Программа, разработанная по правилам структурного программирования, не должна содержать операторов безусловного перехода. Приведенную выше программу без использования оператора goto можно переписать следующим образом:
then writeln(‘Мне ‘,k,’ года’)
else writeln(‘Мне ‘,k,’ лет’)
При рассмотрении операторов цикла полезно предложить одну и ту же задачу запрограммировать тремя разными способами с использованием трех операторов цикла, и наоборот, по условию задачи научиться определять, какой именно оператор цикла является наиболее подходящим в том или ином случае.
Оператор вызова процедуры только на первый взгляд является простым. Здесь важно объяснить правила передачи параметров в процедуры и функции, различие между параметрами-переменными и параметрами-значениями (в последнем случае мы можем передавать не только имя переменной, но и константу или даже выражение соответствующего типа). Формальные и фактические параметры должны соответствовать по типам, но не по именам, что является далеко не очевидным для учеников.
Изучение условного и особенно составного оператора — хороший повод поговорить с учениками о стиле написания программ. Для языка Pascal существует несколько распространенных способов записи структурированных программ, но все они содержат отступы для размещения вложенных структур. Важны для записи программ и комментарии.
Контрольный тест по информатике «Начала программирования»
Описание разработки
Задание #1
Разработчиком языка Паскаль является:
Выберите один из 4 вариантов ответа:
4) Эдсгер В.Дейкстра
Задание #2
Что из нижеперечисленного не входит в алфавит языка Паскаль?
Выберите один из 4 вариантов ответа:
1) латинские строчные и прописные буквы
3) русские строчные и прописные буквы
4) знак подчеркивания
Задание #3
Какая последовательность символов не может служить именем в языке Паскаль?
Выберите один из 4 вариантов ответа:
Задание #4
Вещественные числа имеют тип данных:
Выберите один из 4 вариантов ответа:
Задание #5
В программе на языке Паскаль обязательно должен быть:
Выберите один из 4 вариантов ответа:
1) заголовок программы
2) блок описания используемых данных
3) программный блок
4) оператор присваивания
Задание #6
Какого раздела не существует в программе, написанной на языке Паскаль?
Выберите один из 4 вариантов ответа:
Задание #7
Языковые конструкции, с помощью которых в программах записываются действия, выполняемые в процессе решения задачи, называется:
Выберите один из 4 вариантов ответа:
Задание #8
Разделителями между операторами служит:
Выберите один из 4 вариантов ответа:
Задание #9
Выберите один из 4 вариантов ответа:
4) имя, тип и значение
Задание #10
В данном фрагменте программы:
Выберите один из 4 вариантов ответа:
1) некорректное имя программы
2) не определенное имя переменной
3) некорекктное имя переменной
4) запись арифметического выражения
Задание #11
Какая клавиша нажимается после набора последнего данного в операторе read?
Выберите один из 4 вариантов ответа:
Задание #12
При присваивании изменяется:
Выберите один из 4 вариантов ответа:
3) значение переменной
4) значение константы
Задание #13
Для вывода результатов в Паскале используется оператор:
Выберите один из 4 вариантов ответа:
Задание #14
Для вычисления квадратного корня из x используется функция:
Выберите один из 4 вариантов ответа:
Задание #15
Для генерации случайного целого числа из промежутка [10; 20) необходимо использовать выражение:
Выберите один из 4 вариантов ответа:
Задание #16
В каком из условных операторов допущена ошибка?
Выберите один из 4 вариантов ответа:
1) if b=0 then writeln ( ‘Деление невозможно.’ ) ;
2) if a b then max : = a else max := b ;
Выберите один из 4 вариантов ответа:
Задание #19
if a mod 2=0 then write ( ‘Да’) else write (‘Нет’) позволяет определить, является ли число a:
Выберите один из 4 вариантов ответа:
Задание #20
Какого оператора цикла не существует в языке Паскаль?
Выберите один из 4 вариантов ответа:
Задание #21
Цикл в фрагменте программы
Выберите один из 4 вариантов ответа:
Задание #24
Выберите фрагмент программы, в котором ищется произведение 1*2*3*4*5
Выберите один из 4 вариантов ответа:
1) p : = 0 ; i : = 1; while i 5 do begin p : = p*i ; i : = i + 1 end.
Задание #25
В данном фрагменте программы
for i : = 1 to 10 do
Выберите один из 4 вариантов ответа:
1) сумма целых чисел от 1 до 10
2) сумма четных чисел от 1 до 10
3) удвоенная сумма целых чисел от 1 до 10
4) сумма первых десяти четных чисел
Задание #26
Выберите один из 4 вариантов ответа:
Задание #27
Чему равна сумма элементов a[1] a [4] массива, сформированного следующим образом.
for i : = 1 to 5 do a [ i ] : = i * ( i+1 ) ;
Выберите один из 4 вариантов ответа:
Задание #28
Массив описан следующим образом :
Значение выражения b [ 5 ]*p[ 4 ]-p [ 2 ]-p[ 3 ]-p[ 1 ] равно:
Выберите один из 4 вариантов ответа:
Задание #29
Для записи вспомогательных алгоритмов в языке Паскаль используются:
Выберите один из 4 вариантов ответа:
2) составные операторы
3) процедуры и функции
4) операторы и операнды
Задание #30
Между формальными и фактическим параметрами следует соблюдать соответствие:
Выберите один из 4 вариантов ответа: