Исправьте ошибки в программе запишите ее с отступами каждый оператор в отдельной строке
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Задание к занятию "Пользователи и отладка"
Задача 1 "Создание ролей и пользователей"
Нужно создать роли ПолныеПрава, БазовыеПрава, ДобавлениеИзменениеКонтрагентов и ДобавлениеИзменениеСотрудников и назначить их четырем пользователям.
Требования к результату
Результат - выгрузка (.dt) информационной базы, в которой есть роли ПолныеПрава и БазовыеПрава, а также:
- пользователь Администратор с полными правами;
- пользователь с базовыми правами;
- пользователь с базовыми правами и правом на редактирование контрагентов;
- пользователь с базовыми правами и правом на редактирование сотрудников;
- Используйте конфигурацию УправлениеИТФирмой.
- Создайте в ней роль ПолныеПрава, включив в ней все права и предписав установку прав для новых объектов. Проще всего назначать права не отдельным объектам метаданных, с сразу их классам ("Справочники", "Документы") и т.д. Сделайте эту роль основной для конфигурации.
- Создайте в ней роль БазовыеПрава, включив в ней права на просмотр и чтение всех данных конфигурации, а также право на запуск тонкого клиента и веб-клиента.
- Создайте роли ДобавлениеИзменениеСотрудников и ДобавлениеИзменениеКонтрагентов, дающие права на интерактивное добавление и редактирование контрагентов и сотрудников.
- Создайте пользователей ИБ:
- Администратор с ролью ПолныеПрава;
- произвольного пользователя с ролью БазовыеПрава;
- пользователя с ролями БазовыеПрава и ДобавлениеИзменениеКонтрагентов;
- пользователя с ролями БазовыеПрава и ДобавлениеИзменениеСотрудников.
- Обновите конфигурацию БД и запустите конфигурацию в режиме Предприятия подо всеми четырьмя пользователями. Убедитесь, что администратор может редактировать, что угодно; пользователь с базовыми правами может только просматривать данные; а два пользователя с ролью "ДобавлениеИзменение. " могут редактировать данные одного вида, и только просматривать все остальные.
- Выгрузите ИБ в .dt как результат выполнения задания.
Задача 2 "Поиск ошибки с помощью точки останова"
Требования к результату
Результат - файл .CF конфигурации, в котором исправлена ошибка, возникавшая при попытке записать блок.
- Создайте пустую ИБ и загрузите в нее демо-базу (https://github.com/netology-code/1c-homeworks/blob/master/1c-developer-demo.dt).
- Запустите ее в режиме Предприятия с отладкой и воспроизведите ошибку, открыв любой блок из списка и попытавшись записать его.
- Найдите строку с ошибкой с помощью функции "Остановка по ошибке" и исправьте ее.
- Сохраните конфигурацию как результат выполнения задания.
Задача 3 "Поиск ошибки с помощью журнала регистрации"
Требования к результату
Результат - файл .CF конфигурации, в котором исправлена ошибка, возникавшая при работе фонового задания.
Для того, чтобы найти ошибку, нужно поставить в соответствие друг другу все части условного оператора if и else.
Помним, что часть else относится к ближайшему if. При этом наличие части else не обязательно.
Кроме того, часто присутствует ошибка при вводе или выводе. Обязательно нужно проверить, та ли информация выводится на экран.
Особого внимания требует инициализация переменных.
Формат книги не позволяет рассмотреть все основные типы задач 2 части, рассмотрим лишь те, которые встречались на проверочных и экзаменационных работах последних двух лет.
На обработку поступает положительное целое число, не превышающее 10 9 . Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
Бейсик
Python
INPUT N
WHILE N > 0
DIGIT = N MOD 10
END IF
WEND
Паскаль
Алгоритмический язык
begin
readln(N);
while N > 0 do
begin
digit := N mod 10;
N := N div 10;
end;
writeln(digit)
нач
цел N, digit, sum
ввод N
нц пока N > 0
все
кц
вывод digit
Си
int main()
int N, digit, sum;
while (N > 0)
if (digit < 7)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 456.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Решение использует запись программы на Паскале. Допускается использование программы на любом из четырёх других языков.
1. Программа выведет число 4.
2. Пример числа, при вводе которого программа выдаёт верный ответ: 835.
Программа работает неправильно из-за неверной выводимой на экран переменной и неверного увеличения суммы. Соответственно, программа будет работать верно, если в числе старшая цифра (крайняя левая) равна сумме цифр, меньших 7.
3. В программе есть две ошибки.
Первая ошибка. Неверное увеличение суммы.
Строка с ошибкой:
sum := sum + digit;
Вторая ошибка. Неверный вывод ответа на экран.
Строка с ошибкой:
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство
(при K = 0 сумма считается равной 0).
Для решения этой задачи ученик написал такую программу.
Бейсик
Python
DIM K AS INTEGER
INPUT A
WHILE S < A
WEND
PRINT K
Алгоритмический язык
Паскаль
нач
вещ a, s
цел k
ввод a
нц пока s
кц
вывод k
k: integer;
begin
read(a);
end;
write(k);
Си
int main()
double a, s;
int k;
return 0;
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1.2.
2. Приведите пример числа, при вводе которого программа даст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только исправлять ошибочные строки; удалять строки или добавлять новые строки нельзя. Постарайтесь также не внести новые ошибки – за это оценка снижается.
Решение использует запись программы на Паскале. Допускается использование программы на других языках.
1. При вводе числа 1.2 программа выведет число 2.
2. Примеры чисел, при вводе которых программа выводит верный ответ: 1.6, 2.05.
Программа содержит две ошибки, одна из которых приводит к увеличению ответа, другая – к уменьшению.
В некоторых случаях эти ошибки компенсируют друг друга, и ответ оказывается правильным. Это происходит, если значение A попадает в один из следующих диапазонов: 1.5 < A < 1.83, 2 < A < 2.08.
3. Программа содержит две ошибки.
1) Неверная инициализация. Начальное значение S должно быть равно нулю.
В приведённом варианте вычисленная сумма оказывается на 1 больше правильного значения.
Строка с ошибкой:
2) Неверное определение ответа. Приведённая программа находит не максимальное K, при котором выполняется неравенство, а минимальное, при котором оно не выполняется, то есть увеличивает верное значение на 1.
Кроме того, использованный порядок действий в цикле (увеличение K после увеличения S) приводит к увеличению ещё на 1. Это можно было бы исправить, изменив порядок действий в цикле и уменьшив K после завершения цикла, но эти действия не разрешены по условию задачи.
Поэтому для исправления ошибки можно просто скорректировать значение при выводе.
Контрольная работа по теме "Алгоритмические конструкции" - это выборка из электронной тетради по учебнику К. Полякова "Информатика 8 класс" и задач, рекомендованных автором учебника. В нашем учебном плане кадеты изучают Информатику с 6 класса по 1 часу в неделю, программирование начинают изучать олько в 8 классе. Поэтому мы не можем использовать оригинальную контрольную работу, предлагаемую автором учебника. Приходится адаптировать содержание самостоятельных и контрольных работ, выбирать основные задачи для освоения.
Просмотр содержимого документа
«Контрольная работа Алгоритмические конструкции 8 класс»
Контрольная работа № 2 «Алгоритмические конструкции»
Напишите программу, которая вводит с клавиатуры два целых числа – цену 1 л бензина и объём бака автомобиля, и выводит на экран цену заправки полного бака. Оформите ввод и вывод так, как в примере:
Сколько стоит 1 л бензина? 40
Объём бака? 50
Заправка стоит 2000 рублей
2) Напишите программу, которая вводит с клавиатуры натуральное число N и выводит цепочку из N символов «o»:
Введите длину цепочки: 10
3) Пусть a и b – целые переменные. Что будет выведено в результате работы фрагмента программы:
print( "a ", "b!" )
4) Исправьте ошибки в программе – запишите её с отступами, каждый оператор в отдельной строке:
if x = 0: if x 0: print(1) else: print(0)
else: print(-1)
Что выведет эта программа при разных значениях x?
5) Вычислите значение целочисленной переменной c при a = 26 и b = 6:
6) Запишите циклы, с помощью которых можно вывести на экран
целые числа от a до b (a £ b):
квадраты целых чисел от a до b (a £ b):
7) Определите, сколько раз выполнится цикл и чему будут равно значение переменной a после его завершения:
for i in range(3,0):
8) Что будет выведено на экран в результате работы следующего цикла?
for i in range(1,6):
print( i+k, end="" )
Контрольная работа № 2 «Алгоритмические конструкции»
Напишите программу, которая вводит с клавиатуры трёхзначное число и выводит на экран его первую цифру. Оформите ввод и вывод так, как в примере:
Введите трёхзначное число: 123
Первая цифра 1
2) Напишите программу, которая вводит с клавиатуры натуральное число N и выводит цепочку из N символов «@»:
Введите длину цепочки: 10
3) Пусть a и b – целые переменные. Что будет выведено в результате работы фрагмента программы:
4) В переменной d записан номер дня недели (1 – понедельник, 7 – воскресенье). Программа должна определить, это выходной день или рабочий (выходные дни у большинства людей – суббота и воскресенье). Напишите вариант решения задачи, использующий операцию «И».
print( "Рабочий день." )
print( "Выходной!" )
5) Выполните предыдущее задание при a = –22 и b = 4.
6) Запишите циклы, с помощью которых можно вывести на экран
целые числа от 0 до b ( b0):
суммы целых чисел a и порядковых чисел от 1 до 6
7) Определите, сколько раз выполнится цикл и чему будут равно значение переменной a после его завершения:
Контрольная работа по теме "Алгоритмические конструкции" - это выборка из электронной тетради по учебнику К. Полякова "Информатика 8 класс" и задач, рекомендованных автором учебника. В нашем учебном плане кадеты изучают Информатику с 6 класса по 1 часу в неделю, программирование начинают изучать олько в 8 классе. Поэтому мы не можем использовать оригинальную контрольную работу, предлагаемую автором учебника. Приходится адаптировать содержание самостоятельных и контрольных работ, выбирать основные задачи для освоения.
Просмотр содержимого документа
«Контрольная работа Алгоритмические конструкции 8 класс»
Контрольная работа № 2 «Алгоритмические конструкции»
Напишите программу, которая вводит с клавиатуры два целых числа – цену 1 л бензина и объём бака автомобиля, и выводит на экран цену заправки полного бака. Оформите ввод и вывод так, как в примере:
Сколько стоит 1 л бензина? 40
Объём бака? 50
Заправка стоит 2000 рублей
2) Напишите программу, которая вводит с клавиатуры натуральное число N и выводит цепочку из N символов «o»:
Введите длину цепочки: 10
3) Пусть a и b – целые переменные. Что будет выведено в результате работы фрагмента программы:
print( "a ", "b!" )
4) Исправьте ошибки в программе – запишите её с отступами, каждый оператор в отдельной строке:
if x = 0: if x 0: print(1) else: print(0)
else: print(-1)
Что выведет эта программа при разных значениях x?
5) Вычислите значение целочисленной переменной c при a = 26 и b = 6:
6) Запишите циклы, с помощью которых можно вывести на экран
целые числа от a до b (a £ b):
квадраты целых чисел от a до b (a £ b):
7) Определите, сколько раз выполнится цикл и чему будут равно значение переменной a после его завершения:
for i in range(3,0):
8) Что будет выведено на экран в результате работы следующего цикла?
for i in range(1,6):
print( i+k, end="" )
Контрольная работа № 2 «Алгоритмические конструкции»
Напишите программу, которая вводит с клавиатуры трёхзначное число и выводит на экран его первую цифру. Оформите ввод и вывод так, как в примере:
Введите трёхзначное число: 123
Первая цифра 1
2) Напишите программу, которая вводит с клавиатуры натуральное число N и выводит цепочку из N символов «@»:
Введите длину цепочки: 10
3) Пусть a и b – целые переменные. Что будет выведено в результате работы фрагмента программы:
4) В переменной d записан номер дня недели (1 – понедельник, 7 – воскресенье). Программа должна определить, это выходной день или рабочий (выходные дни у большинства людей – суббота и воскресенье). Напишите вариант решения задачи, использующий операцию «И».
print( "Рабочий день." )
print( "Выходной!" )
5) Выполните предыдущее задание при a = –22 и b = 4.
6) Запишите циклы, с помощью которых можно вывести на экран
целые числа от 0 до b ( b0):
суммы целых чисел a и порядковых чисел от 1 до 6
7) Определите, сколько раз выполнится цикл и чему будут равно значение переменной a после его завершения:
Учебник по Информатике 8 класс Босова
of your page -->
Задание 2. Как на языке Паскаль записывается полное и неполное ветвление?
Неполное ветвление (Выполнение действия только для ветки «да»):
if then
Задание 3. Является ли условным оператором следующая последовательность символов?
Задание 4. Что такое составной оператор? Для чего он используется в условном операторе?
Составным оператором является конструкция вида:
begin end
которая может стоять в условном операторе и после then и после else.
Такая конструкция используется тогда, когда нужно выполнить последовательность из нескольких операторов.
Задание 5. Используя составной оператор, упростите следующий фрагмент программы:
if a>b then c:=1;
if a>b then d:=2;
if a if a
Задание 6. Дано натуральное трехзначное число. Напишите программу, которая определяет:
а) есть ли среди цифр данного числа одинаковые;
б) является ли данное число «перевертышем», то есть числом, десятичная запись которого читается одинаково слева направо и справа налево.
Задание 7. Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат.
Программа будет запрашивать координаты двух точек. Следующим её шагом будет определение расстояния от начала координат до точек. Треугольник прямоугольный, координаты точки равны двум ее катетам. По теореме Пифагора найдем гипотенузы двух треугольников и сравним их. Чем меньше гипотенуза, тем ближе точка находится к началу координат.
Задание 8. Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).
Задание 9. Имеются данные о количестве полных лет трех призеров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призера.
Задание 10. Напишите программу, определяющую, лежит ли точка A на прямой y=kx+l, над ней или под ней.
Сначала вводим данные для переменных: k, l, xA, yA (два последних это координаты точки A). Затем в уравнение y=kx+l подставим вместо «x» значение переменной xA и найдем значение «y» при заданной xA. Далее мы сравниваем значение «y» и «yB» и делаем вывод, где находится точка относительно прямой, на ней, над ней или под ней.
Задание 11. Напишите программу, которая производит обмен значений числовых переменных x и y, если x больше y.
Задание 12. Дан условный оператор:
if a else if a>5 then c:=2
else c:=3
Какое значение имеет переменная «a», если в результате выполнения условного оператора переменной «c» присваивается значение 3?
В нашем случае сработало третье условие. В первой условии значение переменной «a» меньше 5, а во втором больше 5. Значит переменная «а» равна 5. Ответ: a=5
Задание 13. Напишите программу, вычисляющую значение функции:
Задание 14. Составьте программу для решения задачи №21 к параграфу 2.4 (определение дня недели).
Задание 15. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введенным координатам двух полей (k, l) и (m, n) определяет, имеют ли эти поля один цвет.
Сумма координат соседних (т.е. имеющих общую сторону) полей на шахматной доске отличается на 1. Следовательно, если сумма координат некоторого поля является четным числом, то сумма координат всех его соседних полей будет нечетным числом и наоборот. Вместе с тем соседние поля всегда имеют разный цвет.
Задание 16. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а – случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.
Решение заданий из учебника Информатика 8 класс Босова, параграф 3.4 Программирование разветвляющихся алгоритмов. Условный оператор, составной оператор, многообразие способов записи ветвлений, многообразие способов записи ветвлений.
Читайте также: