Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (х, у — действительные числа) и определяет принадлежность точки заштрихованной области. Программист торопился и написал программу неправильно.
Паскаль | Бейсик |
var х, у: real; begin readln(х, у) ; if у >= −х * х then if у >= −х − 2 then if у | INPUT x, у IF у >= -x * x THEN IF у >= -x — 2 THEN IF у |
Последовательно выполните следующее:
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран.
ЕГЭ по информатике 2014 Задача С1
Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Область | Условие 1 (у >= −х*х) | Условие 2 (у >= −х−2) | Условие 3 (у | Программа выведет | Область обрабатывается верно |
A | |||||
В | |||||
С | |||||
D | |||||
Е | |||||
F | |||||
G | |||||
Н |
Область | Условие 1 (у >= −х*х) | Условие 2 (у >= −х−2) | Условие 3 (у | Программа выведет | Область обрабатывается верно |
A | да | нет | — | — | нет |
В | да | нет | — | — | нет |
С | да | да | нет | не принадлежит | да |
D | да | да | да | принадлежит | нет |
Е | нет | — | — | — | нет |
F | да | да | да | принадлежит | да |
G | нет | — | — | — | нет |
Н | нет | — | — | — | нет |
2. Возможная доработка (Паскаль):
ДЕМО-вариант C1. ЕГЭ по информатике 2012 г. Ролик
if (у >= −х * х) and (у >= −х − 2) and (у
(могут быть и другие способы доработки).
2. Задания Д24 C1 № 3629
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Программист торопился и написал программу неправильно.
Паскаль | Бейсик |
var x,y: real; begin readln(x,y); if y | INPUT x, y IF y |
Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран.
Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Область | Условие 1 (y <=2+x) | Условие 2 (x <=0) | Условие 3 (x*x+y*y <=25) | Программа выведет | Область обрабатывается верно |
A | |||||
В | |||||
С | |||||
D | |||||
Е | |||||
F | |||||
G | |||||
Н | |||||
K |
Решение.
Область | Условие 1 (y <=x+2) | Условие 2 (x < = 0) | Условие 3 (x*x+y*y <=25) | Программа выведет | Область обрабатывается верно |
A | нет | — | — | — | нет |
B | нет | — | — | — | нет |
C | Да | Да | Да | принадлежит | нет |
D | нет | — | — | — | нет |
E | Да | Да | Да | принадлежит | Да |
F | Да | Да | нет | не принадлежит | Да |
G | нет | — | — | — | нет |
H | да | нет | — | — | нет |
K | Да | нет | — | — | нет |
Возможная доработка (пример на Паскале):
else write(‘не принадлежит’)
Возможны и другие способы доработки
2) Решить самостоятельно 2 задачи:
Задача 1. Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
INPUT x IF x=1 THEN PRINT «принадлежит» ELSE PRINT «не принадлежит» ENDIF ENDIF ENDIF END | var x: real; begin readln(x); if x=1 then write(‘принадлежит’) else write(‘не принадлежит’) end. |
Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки 1, 7, 13 и 19) принадлежат заштрихованным областям (B и D соответственно).
Область | Условие 1 (x <13) | Условие 2 (x <=7) | Условие 3 (x>=1) | Программа выведет | Область обрабатывается верно |
A | |||||
B | |||||
C | |||||
D | |||||
E |
В столбцах условий укажите «да», если условие выполнится; «нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Задача 2. Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы).
Программист торопился и написал программу неправильно. Ниже для вашего удобства программа представлена на четырёх языках программирования.
Бейсик | Паскаль |
INPUT x, y IF y>=-1 THEN IF y | var x,y: real; begin readln(x,y); if y>=-1 then if y |
Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей.
В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».
Область | Условие1 (y>=–1) | Условие 2 (y <=1) | Условие 3 ((x+1) 2 +y 2 <=1) | Условие 4 ((x–1) 2 +y 2 <=1) | Программа выведет | Область обрабатывается верно |
A | ||||||
В | ||||||
С | ||||||
D | ||||||
Е | ||||||
F | ||||||
G |
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Домашнее задание: дорешать задачи
Источник: helpiks.su
Глава 8. Алгоритмизация и программирование
1) С клавиатуры вводится трёхзначное число. Нужно вывести ответ «Да», если все его цифры четные, и ответ «Нет» в остальных случаях.
2) Требовалось написать программу, которая определяет, имеется ли среди введенных с клавиатуры положительных целых чисел а и Ь хотя бы одно четное. Была написана следующая программа:
если a>0 то b:=mod(b,2) все
вывод «четных чисел нет»
вывод «четное число есть»
var a, b: integer;
if a > 0 then b := b mod 2;
writeln (‘четных чисел нет’)
writeln (‘четное число есть’);
Известно, что программа написана с ошибками. Последовательно выполните три задания:
а) приведите пример таких чисел а, b, при которых программа неверно решает поставленную задачу;
б) укажите, как, по вашему мнению, нужно доработать программу (не используя сложные условия), чтобы не было случаев ее неправильной работы;
в) укажите, как можно доработать программу, чтобы она вместо вложенных операторов IF содержала один условный оператор со сложным условием.
1) С клавиатуры вводится трёхзначное число. Нужно вывести ответ «Да», если все его цифры четные, и ответ «Нет» в остальных случаях. Если введено не трёхзначное число, должно быть выведено сообщение «Неверное число».
2) Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости ( x , y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
вывод «не принадлежит»
Последовательно выполните следующее:
а) приведите пример таких чисел x , y , при которых программа неверно решает поставленную задачу;
б) укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы; это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы.
1) С клавиатуры вводится целое число от 1 до 1000, обозначающая сумму в рублях. Программа должна напечатать эту сумму прописью, например:
двадцать один рубль
сто семьдесят три рубля
девятьсот пятнадцать рублей
2) Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости ( x , y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
вывод «не принадлежит»
Последовательно выполните следующее :
а) приведите пример таких чисел x , y , при которых программа неверно решает поставленную задачу;
б) укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы; это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы.
Контрольная работа
Циклы
1) Определите значение переменной s после выполнения фрагмента программы:
2) Определите значение переменной s после выполнения фрагмента программы:
нц для к от -3 до 5
for k:=-3 to 5 do begin
3) По каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число из последовательности, которое делится на 10.
Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида:
Получено .. чисел
Полученное контрольное значение: ….
Вычисленное контрольное значение:…
Контроль пройден (или – контроль не пройден)
1) Укажите наименьшее и наибольшее из таких чисел , при вводе которых алгоритм печатает сначала 3, а потом 6:
var x, L, M: integer;
while x > 0 do begin
2) Определите значение переменной s после выполнения фрагмента программы:
нц для к от 1 до 5
нц для j от 1 до k
3) По каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число, которое можно получить умножением двух различных элементов последовательности.
Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида:
Получено .. чисел
Полученное контрольное значение: ….
Вычисленное контрольное значение:…
Контроль пройден (или – контроль не пройден)
1) Ниже записана программа. Получив на вход число , эта программа печатает два числа, и . Укажите максимальное и минимальное числа, при вводе которых алгоритм печатает сначала 3, а потом 7.
если mod ( x ,2) = 1 то
M := M + div(mod ( x ,10) ,2)
var x, L, M: integer;
while x > 0 do begin
if x mod 2 = 1 then
2) Определите значение переменной s после выполнения фрагмента программы:
нц для к от 1 до 5
нц для j от 1 до k
нц для m от 1 до j
3) По каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число X, которое:
а) делится на 10;
б) может быть получено умножением двух различных чисел, входящих в полученную последовательность.
Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида:
Получено .. чисел
Полученное контрольное значение: ….
Вычисленное контрольное значение:…
Контроль пройден (или – контроль не пройден)
Контрольная работа
Процедуры и функции
1) Определите результат работы функции при входном значении, равном 123456:
алг цел qq(цел x0)
нц для i от 1 до 3
function qq(x: integer):integer;
var i , s : integer;
for i:=1 to 3 do begin
2) Напишите процедуру, которая выводит на экран переданное ей число в системе счисления, которая задается вторым параметром (от 2 до 10).
1) Определите результат работы функции входном значении, равном 123456:
алг цел qq(цел x0, y )
function qq(x: integer):integer;
var i, s: integer;
while x > 0 do begin
s:= 10*s + x mod 10;
2) Напишите процедуру, которая переводит переданное ей натуральное число в систему счисления, которая задается вторым параметром (от 2 до 20).
1) Определите результат работы функции при входных значениях, равных 123456 и 78901:
алг цел qq(цел x0, y 0)
нц пока x > 0 и y > 0
function qq(x,y: integer)
var i, s: integer;
while (x > 0) and (y > 0) do
s:= 10*s + (x+y) mod 10;
2) Напишите процедуру, которая выводит на экран переданное ей число в негадвоичной системе счисления, основание которой равно (–2). Например,
Контрольная работа
Массивы
1) Введите массив из 5 элементов с клавиатуры и найдите количество элементов, которые оканчиваются на 8 и делятся на 3.
2) Заполните массив случайными числами в интервале [100,999] и переставьте их по возрастанию средней цифры.
3) Заполните массив случайными числами в интервале [0,1000] и выведите номера всех элементов, которые равны последнему элементу.
1) Введите массив из 5 элементов с клавиатуры и найдите количество элементов, старшая цифра которых равна 8.
2) Заполните массив случайными числами в интервале [100,999] и переставьте их по возрастанию суммы цифр.
3) Заполните массив случайными числами в интервале [0,1000] и выведите номера двух соседних элементов, произведение которых наибольшее.
1) Введите массив из 5 элементов с клавиатуры и найдите количество элементов, запись которых в двоичной системе – палиндром (например, 101012 = 21).
2) Заполните массив случайными числами в интервале [100,999] и переставьте их по возрастанию количества делителей.
3) Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх различных минимальных элементов. Разрешается сделать только один проход по массиву.
Контрольная работа
Символьные строки
1) С клавиатуры вводится символьная строка. Определите, сколько в ней цифр.
2) С клавиатуры вводится предложение, в котором каждые два слова разделены ровно пробелом. Определите, сколько слов в этом предложении.
3) Напишите функцию, которая удаляет из переданной ей символьной строки все символы ».
1) С клавиатуры вводится символьная строка. Определите, какой символ встречается в ней чаще всего.
2) С клавиатуры вводится предложение, в котором слова разделены пробелами. Определите, сколько слов в этом предложении начинается на букву «а».
3) Напишите функцию, которая удаляет из переданной ей символьной строки все лишние пробелы, заменяя повторяющиеся пробелы на один пробел.
1) С клавиатуры вводится символьная строка длиной. Определите, сколько раз встречается в строке каждый из входящих в нее символов.
2) С клавиатуры вводится предложение, в котором слова разделены пробелами. Определите, сколько слов в этом предложении начинается и заканчивается на одну и ту же букву.
3) Напишите функцию, которая удаляет из переданной ей символьной строки все символы, заключенные в угловые скобки » (вместе с этими скобками).
Контрольная работа
Файлы
Уровень A. В каждой строке файла записано три числа, каждое из которых находится в интервале [0,255]. Эти числа обозначают красную, зелёную и синюю составляющие цвета в цветовой модели RGB. Запишите в другой файл полные коды заданных цветов в виде целых чисел (код цвета = 255·255· R + 255·G + B).
Уровень B. В каждой строке файла записано три числа, каждое из которых находится в интервале [0,255]. Эти числа обозначают красную, зелёную и синюю составляющие цвета в цветовой модели RGB. Запишите в другой файл полные коды заданных цветов в виде целых чисел в шестнадцатеричной системе счисления (цвет (128,255,255) запишется как 80FFFF).
Уровень C. В файле записаны данные о результатах сдачи экзаменов по математике, русскому языку и физике. Каждая строка содержит фамилию, имя и три целых числа – количество баллов, набранных участником по каждому предмету:
Вывести в другой файл данные учеников, которые получили в сумме больше 240 баллов. Список должен быть отсортирован по убыванию балла. Формат выходных данных:
Источник: znanio.ru
Требовалось написать программу которая выводит с клавиатуры координаты
Нет аккаунта? Зарегистрироваться
ЕГЭ 2013 Задания С1. Поиск и исправление ошибок в программе
- Dec. 19th, 2012 at 12:58 PM
C1 № 2801. Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (,
— действительные числа) и определяет принадлежность точки заштрихованной области, включая её границы. Программист торопился и написал программу неправильно.
ПРОГРАММА НА ПАСКАЛЕ | ПРОГРАММА НА БЕЙСИКЕ | ПРОГРАММА НА СИ |
var x,y: real; begin readln(x,y); if x*x+y*y>=4 then if x>= –2 then if ywrite(‘принадлежит’) else write(‘не принадлежит’) end. |
INPUT x, y IF x*x+y*y>=4 THEN IF x>= –2 THEN IF yPRINT «принадлежит» ELSE PRINT «не принадлежит» ENDIF ENDIF ENDIF END |
void main(void) scanf(«%f %f»,y); if (x*x+y*y>=4) if (x>= –2) if (yprintf(«принадлежит»); else printf(«не принадлежит»); > |
Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).
Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран.
Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Область | Условие 1 (x*x+y*y>=4) |
Условие 2 (x>= –2) |
Условие 3 (y |
Программа выведет | Область обрабатывается верно |
A | |||||
В | |||||
С | |||||
D | |||||
Е | |||||
F | |||||
G | |||||
Н |
Пояснение.
Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)
Элементы ответа:
1)
Область | Условие 1 (x*x+y*y>=4) |
Условие 2 (x>= –2) |
Условие 3 (y |
Программа выведет | Область обрабатывается верно |
A | да | нет | — | — | нет |
В | да | нет | — | — | нет |
С | да | да | нет | не принадлежит | да |
D | да | да | да | принадлежит | да |
Е | нет | — | — | — | нет |
F | нет | — | — | — | нет |
G | нет | — | — | — | нет |
Н | да | да | да | принадлежит | нет |
2) Возможная доработка (Паскаль):
if (x*x+y*y>=4) and (x>= –2) and (y=0) then
write(‘принадлежит’)
else
write(‘не принадлежит’)
(могут быть и другие способы доработки).
- Current Mood: rejected
Источник: iteacher237.livejournal.com