428

op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс
Page 2: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное

учреждение высшего образования

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра математики и информатики

Григорьев М.В.

ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ

Учебно-методический комплекс. Рабочая программа

для студентов направления

15.03.06 «Мехатроника и робототехника»

очной формы обучения

Тюменский государственный университет

2017

Page 3: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Григорьев М.В., Информатика и программирование. Учебно-

методический комплекс. Рабочая программа для студентов направления

15.03.06 «Мехатроника и робототехника» очной формы обучения. Тюмень,

2017, 30 стр.

Рабочая программа составлена в соответствии с требованиями ФГОС ВО

с учетом рекомендаций и ПрОП ВО по направлению и профилю подготовки.

Учебно-методический комплекс включает рабочую программу,

методические рекомендации (приложение 1), фонд оценочных средств

(приложение 2).

Рабочая программа дисциплины (модуля) опубликована на сайте

ТюмГУ: Информатика и программирование [электронный ресурс] / Режим

доступа: http://www.umk3plus.utmn.ru, свободный.

Рекомендовано к изданию кафедрой математики и информатики.

Утверждено директором Института математики и компьютерных наук.

ОТВЕТСТВЕННЫЙ РЕДАКТОР: Григорьев М.В., к.т.н., и.о. зав. кафедрой

© Тюменский государственный университет, 2017

© Григорьев М.В., 2017

Page 4: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

4

1. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

1.1. Цели и задачи дисциплины

Целью дисциплины «Информатика и программирование» - сформировать у студента

фундамент основных понятий информатики и современной информационной культуры,

сформировать у студента основные навыки программирования на языке C# (объектно-

ориентированное программирование) в современных средах разработки приложений,

усвоение этих знаний студентами, а также формирование у них мотивации к самообразованию

за счет активизации самостоятельной познавательной деятельности.

Задачи дисциплины "Информатика и программирование":

подготовить студентов к междисциплинарным научным исследованиям для

решения задач, связанных процессами анализа, прогнозирования,

моделирования и создания информационных процессов, технологий в рамках

профессионально-ориентированных информационных систем;

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

созданию новых конкурентоспособных информационных технологий и систем.

1.2. Место дисциплины в структуре образовательной программы

Дисциплина относится к базовым дисциплинам блока Б1 образовательной программы

бакалавриата. Учебная дисциплина «Информатика и программирование» базируется на

знаниях и умениях, полученных при изучении школьных дисциплин.

Данная дисциплина является предшествующей для дисциплин «Программирование»,

«Языки программирования».

Для изучения дисциплины студенты должны обладать начальными знаниями

компьютерных наук, полученными в школе, а также понимания устройства сети Интернет и

архитектуры компьютера.

Таблица 1.

Разделы дисциплины и междисциплинарные связи с обеспечиваемыми

(последующими) дисциплинами

п/п

Наименование

обеспечиваемых

(последующих) дисциплин

Темы дисциплины необходимые для изучения

обеспечиваемых (последующих) дисциплин

1.1 1.2 2.1 2.2 3.1 3.2

1. Программирование + + + +

2. Языки программирования + + + +

1.3. Компетенции обучающегося, формируемые в результате освоения данной

образовательной программы

В результате освоения ОП выпускник должен обладать следующими компетенциями:

общекультурными:

способностью использовать основы экономических знаний в различных сферах

деятельности (ОК-3);

общепрофессиональными:

способностью решать стандартные задачи профессиональной деятельности на

основе информационной и библиографической культуры с применением

информационно-коммуникационных технологий и с учетом основных

требований информационной безопасности (ОПК-6).

1.4. Перечень планируемых результатов обучения по дисциплине

знать:

основные понятия и терминологию в области вычислительной техники;

основы построения и архитектуры компьютера;

способы представление информации в памяти;

базовые типы данных, операции и операторы языков программирования;

интегрированные среды (IDE) разработки приложений;

описание классов и методов приложения;

Page 5: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

5

принципы обработки исключительных ситуации в языках ООП;

уметь:

формализовать вычислительные и логические задачи;

представлять алгоритмы вычислительных и логических задач;

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

использовать стандартные классы языков ООП;

проектировать собственные классы и методы;

использовать современные IDE для создания собственных проектов и отладки

соответствующих приложений;

использовать образовательные ресурсы по дисциплине, представленные в сети

ИНТЕРНЕТ;

владеть:

навыками создания и отладки приложений на языке программирования C#;

навыками использования интегрированной среды разработки Microsoft Visual

Studio.

2. СТРУКТУРА И ТРУДОЕМКОСТЬ ДИСЦИПЛИНЫ

Семестр 1. Форма промежуточной аттестации (зачет, экзамен) экзамен. Общая

трудоемкость дисциплины составляет 7 зачетных единиц, 252 академических часа, из них

76,48 часов, выделенных на контактную работу с преподавателем, 175,52 часа, выделенных на

самостоятельную работу.

3. ТЕМАТИЧЕСКИЙ ПЛАН

Таблица 2.

№ Тема

нед

ели

сем

естр

а

Виды учебной работы и

самостоятельная работа, в

час.

Итого

часов

по

теме

Из них в

интерак тивной

форме, в

часах

Итого

количес тво

баллов

Лек

ци

и *

Сем

ин

ар

ски

е

(пр

ак

ти

чес

ки

е)

зан

яти

я*

Лабор

атор

ны

е

зан

яти

я*

Сам

ост

оя

тел

ьн

ая

работа*

1 2 3 4 5 6 7 8 9 10

Модуль 1

1.1 Бинарная

арифметика 1 4 2 50 56 4 0-2

1.2 Реализация

вычислительных

функций

3 8 8 20 36 4 0-16

Всего 12 10 70 92 8 0-18

Модуль 2

2.1 Проверка свойств и

значений 7 6 6 30 42 4 0-11

2.2 Базовые

управляющие

конструкции

10 6 6 30 42 4 0-16

Всего 12 12 60 84 8 0-27

Модуль 3

Page 6: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

6

3.1 Одномерные и

многомерные

массивы

13 8 8 20 36 4 0-15

3.2 Работа со

строковыми

данными

17 4 6 30 40 4 0-10

Всего 12 14 50 76 8 0-25

Итого (часов,

баллов) **: 36 36 180 252 24 0-100

Курсовая работа *

Из них в интеракт.

Форме 12 12

*- если предусмотрены учебным планом ОП.

** - с учетом иных видов работ.

4. ВИДЫ И ФОРМЫ ОЦЕНОЧНЫХ СРЕДСТВ В ПЕРИОД ТЕКУЩЕГО КОНТРОЛЯ

Таблица 3.

Темы Устный опрос Письменные работы Технические

формы

контроля

Информаци онные

системы и

технологии

Итого к

ол

ич

еств

о б

ал

лов

кол

лок

ви

ум

ы

собес

едов

ан

ие

зач

ет

лабор

атор

ная

работа

кон

тр

ол

ьн

ая

работа

тес

т

реф

ерат

эссе

пр

огр

ам

мы

ком

пь

ютер

ног

о т

ести

ров

ан

ия

ком

пл

ексн

ые

ситуац

ион

ны

е

зад

ан

ия

элек

тр

он

ны

е

пр

ак

ти

кум

ы

др

уги

е ф

ор

мы

Модуль 1 1.1 0-2 0-2

1.2 0-5 0-1 0-10 0-16

Всего 0-18

Модуль 2 2.1 0-1 0-10 0-11

2.2 0-5 0-1 0-10 0-16

Всего 0-27

Модуль 3 3.1 0-5 0-10 0-15

3.2 0-10 0-10

Всего 0-25

Итого 0-30 0-100

Штрафные баллы:

1 балл за каждое занятие, пропущенное без уважительной причины.

Премиальные баллы:

1 балл за участие в профильной олимпиаде или конкурсе;

5 баллов за творческий подход к выполнению электронного практикума;

10 баллов за призовое место в профильной олимпиаде или конкурсе;

50 баллов за победу в профильной олимпиаде или конкурсе.

5. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

Тема 1.1. Бинарная арифметика

Общие сведения об архитектуре ЭВМ. Языки программирования низкого уровня.

Системы счисления (десятичные, двоичные, шестнадцатеричные). Битовые представления

чисел. Операции сложения и умножения двоичных чисел. Двоичные дополнения чисел.

Положительные и отрицательные двоичные числа. Вычитание в двоичной форме.

Page 7: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

7

Тема 1.2. Реализация вычислительных функций.

Форма программы и базовые вычисления. Оператор присваивания и простая

арифметика. Класс Math.

Тема 2.1. Проверка свойств и значений.

Условный оператор и организация разветвлений в программе. Переключатели. Выход

из блоков. Средства и алгоритмы представления, хранения и обработки текстовой и числовой

информации. примитивные типы float, double, byte, short, integer, long, char и boolean:

объявление, вид констант, разрешенные операции и стандартные функции. старшинство

операций. классы-оболочки: Number, Integer, Float, Character, Boolean и др.

Тема 2.2. Базовые управляющие конструкции.

Представление основных структур: итерации, ветвления, повторения. Операторы

повторения while, do, for. Применение составной инструкции. Вложенные циклы. Примеры

циклических программ.

Тема 3.1. Одномерные и многомерные массивы.

Описание массивов. Инициализация массивов. Ввод-вывод элементов массивов.

Многомерные массивы. «Неровные» массивы. Примеры программ работы с массивами.

Тема 3.2. Работа со строковыми данными.

Описание строковых данных. Представление строк в памяти. Операции со строками.

Модификация, сравнение, поиск образца. Динамические строки- класс StringBuffer, основные

методы класса. Лексический анализ строк, класс StringTokenizer.

6. ПЛАНЫ СЕМИНАРСКИХ ЗАНЯТИЙ

Не планируется.

7. ТЕМЫ ЛАБОРАТОРНЫХ РАБОТ (ЛАБОРАТОРНЫЙ ПРАКТИКУМ)

Тема 1.1. Бинарная арифметика.

Упражнение:

1. Перевести в десятичную систему счисления двоичные числа:

00000001 00000011 00000100 00000101 00001111 10101010

11100000 10000000 11111111 11100111

2. Перевести в десятичную систему счисления шестнадцатеричные числа:

9 E 1A A1 FF 3B3 FFF0 A000 B800 A417

3. Выполнить операции сложения и умножения над следующими числами:

00000101 00000011

00000010 00010101

00000110 00000101

00001111 00001010

11100000 10000000

4. Определить дополнительные коды следующих двоичных чисел:

00001011 01100101 01111010 01101101 00000111

00110000 00111111 00010001 00110001 00001111

Необходимый инструментарий: Microsoft Visual Studio.

Тема 1.2. Реализация вычислительных функций.

Упражнение:

Задание 1.

Дано натуральное четырёхзначное число. Поменять местами цифры по следующему

правилу: цифру в разряде единиц поменять с цифрой в разряде тысяч, а цифру в разряде

десятков с цифрой в разряде сотен. Например, для числа 3415 результат будет 5143.

Дано натуральное пятизначное число. Преобразовать это число так, чтобы

цифры шли в обратном порядке. Например, для числа 68231 результат будет 13286.

Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее

в конце. Найти полученное число.

Дано трехзначное число. В нем зачеркнули последнюю справа цифру и

приписали ее в начале. Найти полученное число.

Page 8: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

8

Задание 2. Необходимо использовать вещественные числа. Ответ выводится с 3

знаками после запятой.

Вычислить площадь треугольника со сторонами a, b, c.

Вычислить гипотенузу прямоугольного треугольника с катетами a, b.

Вычислить длину высоты равностороннего треугольника со стороной a.

Вычислить среднее геометрическое модулей 3 чисел: a, b, c.

Вычислить расстояние между точками (x1,y1, z1) и (x2,y2, z2).

Задание 3. Вычислить, используя только операции умножения или деления.

Вычислить за 4 операции a^7.

Вычислить за 3 операции a^8.

Вычислить за 4 операции a^9.

Вычислить за 4 операции a^10.

Вычислить за 5 операции a^13.

Вычислить за 5 операции a^15.

Вычислить за 6 операции a^21.

Вычислить за 6 операции a^28.

Вычислить за 6 операции a^64.

Вычислить за 5 операции a^20.

Вычислить за 6 операции a^19.

Вычислить за 7 операции a^35.

Вычислить за 6 операции a^17.

Дополнительные задания:

Найти расстояние, которое пролетит тело, брошенное под углом к горизонту. На

ввод программе задается угол A и начальная скорость v. Константу g считать равной 9.81

м/с^2.

Дана функция:

𝑓(𝑥, 𝑦, 𝑧) = √𝑎 + 𝑥 + 2 sin(𝑦) − 𝑡𝑔(𝑏𝑧 + 𝑐)

ln(1 − 𝑑𝑦)

Напишите программу, которая будет:

считывать вещественные коэффициенты a, b, c, d;

выводить на консоль область определения функции;

выводить на консоль значение функции в некоторой точке с 5 знаками после

запятой (координаты точки подаются на ввод).

Необходимый инструментарий: Microsoft Visual Studio.

Тема 2.1. Проверка свойств и значений.

A

v

Page 9: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

9

Упражнение:

Задание 1. С помощью логической переменной и оператора присваивания определить :

год с порядковым номером y - високосный (т.е. кратен 4, но если кратен 100, то должен быть

кратен и 400, например: 1900 - невисокосный, 2000 — високосный).

Задание 2.

а). x принадлежит отрезку [2; 5] или [-1; 1]

б). x лежит вне отрезков [2; 5] и [-1; 1]

Задание 3. Даны три целых числа: A, B, C. Проверить истинность высказываний:

«Каждое из чисел A, B, C положительное».

«Хотя бы одно из чисел A, B, C положительное».

«Ровно одно из чисел A, B, C положительное».

«Ровно два из чисел A, B, C являются положительными».

«Хотя бы два из чисел A, B, C являются положительными».

«Среди чисел A, B, C нет положительных».

Задание 4.

Точка на плоскости задана своими координатами (декартова система). Программа

должна вывести номер координатной четверти, в которой лежит точка (I, II, III, IV).

Задание 5.

Напишите программу, которая решает квадратное уравнение вида: 〖ax〗^2+bx+c=0,

Входными данными для программы являются 3 вещественных числа: a, b, c. Ваша программа

должна выводит решение уравнения для всех 3 случаев (корней нет, один корень, два корня).

Необходимый инструментарий: Microsoft Visual Studio.

Тема 2.2. Базовые управляющие конструкции.

Упражнение:

Задание 1.

Вам дано число N. Считайте и выведите на экран квадраты чисел от 1 до N.

Пример работы:

Введите N = 5

1

4

9

16

25

Задание 2 (по вариантам, вариант по формуле).

Вам дано число n. Вычислите сумму следующего ряда:

1. 1 + 3 + 5 + 7 + … + 2𝑛 − 1

2. 1 − 2 + 3 − 4 + 5 − 6 + … + (−1)𝑛−1𝑛

3. 1

1+

1

2+

1

3+

1

4+ … +

1

𝑛

Задание 3.

Вам дано целое положительное число N. Считайте и выведите на экран все его

делители.

Пример работы:

Введите N = 12

Делители:

1

2

3

4

6

Page 10: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

10

12

Задание 4.

Вам дано число n. Вычислите сумму цифр числа.

Пример работы:

Введите N = 486540

Сумма цифр равна 27

Задание 5 (доп).

Вам дано число n. Переведите число в двоичную систему счисления.

Пример работы:

Введите N = 42

Двоичная форма: 101010

Задание 6 (доп).

Найдите в Интернете описание алгоритма Евклида, изучите и реализуйте его. Алгоритм

Евклида позволяет находить для двух целых положительных чисел их наибольший общий

делитель (НОД).

Пример работы:

Введите A: 18

Введите B: 12

НОД(18, 12) = 6

Задание 7.

Дана последовательность и N целых чисел. Напишите программу вычисляющую ответ,

используя цикл for.

Определите среднее арифметическое квадратов чисел, стоящих на четных

позициях;

Пример: Ответ для последовательности 4, -6, -2, 7 равен 42.5

((−6)2+72

2 = 42.5)

Найдите количество четных и нечетных чисел в последовательности;

Пример: Ответ для последовательности 4, -6, -2, 7 равен 3 1

(четных 3, нечетных 1)

Найдите количество чисел таких, что следующее число больше текущего;

Пример: Ответ для последовательности 4, -6, -2, 7 равен 2

(подходят пары -6, -2 и -2, 7)

В вашей последовательности не может быть нулевых значений. Найдите

количество изменений знаков в последовательности (переход с отрицательного на

положительное и наоборот);

Пример: Ответ для последовательности 4, -6, -2, 7 равен 2

(знак меняется между 4, -6 и -2, 7)

Найдите сумму модулей разности соседних чисел в последовательности.

Пример: Ответ для последовательности 4, -6, -2, 7 равен 23

(|4 - (-6)| + |-6 - (-2)| + |-2 - 7| = 23)

Задание 8.

Вам дано число N. Распечатайте таблицу умножения, где первый и второй множители

находятся в диапазоне от 1 до N.

Пример:

Ввод:

Page 11: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

11

3

Вывод:

1 2 3

2 4 6

3 6 9

Задание 8. Доп.

Вам дана последовательность из N целых чисел, значение которых больше 1. Считайте

и выведите количество простых чисел в последовательности. Напоминаю, простое число -

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

положительных числа (если число X - простое, то у него будут 2 делителя: 1 и X). Число 1 не

является простым.

Пример:

Ввод:

6

3

8

100

17

9

12

Вывод:

2

Необходимый инструментарий: Microsoft Visual Studio.

Тема 3.1. Одномерные и многомерные массивы.

Упражнение:

Задание 1.

Вам задана последовательность из N вещественных чисел (т.е. первым числом на ввод

программы подается именно число N, после в каждой строке идут числа последовательности).

Считайте последовательность в массив и выполните задания:

1. Вычислите среднее квадратическое (формулу найдите в гугле);

2. Вычислите среднее гармоническое (формулу найдите в гугле).

Задание 2.

Вам задана последовательность из N целых чисел (т.е. первым числом на ввод

программы подается именно число N, после в каждой строке идут числа последовательности).

Считайте последовательность в массив и выполните задания:

1. Найдите минимальное число;

2. Найдите положительное число с наибольшим номером (если такого нет, то

сообщите об этом);

3. Найдите первое по порядку четное число (если такого нет, то сообщите об этом);

4. Найдите количество нулевых элементов.

Задание 3. (доп.)

Вам задан многоугольник, состоящий из N вершин с вещественными координатами,

перечисленных по часовой стрелке (т.е. первым числом на ввод программы подается именно

число N, после в каждой строке даны 2 числа - координаты очередной точки). Используя

массив, вычислите периметр многоугольника.

Пример:

Ввод:

4

0,0 0,0

Page 12: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

12

0,0 2,0

1,0 2,0

1,0 0,0

Вывод:

6.00

Пояснение: в примере задан многоугольник из 4-х вершин: (0,0), (0,2), (1,2), (1,0). Его

периметр равен 6.

Задание 4.

Вам задана последовательность целых чисел (числа записаны в одной строке через

пробел). Считайте последовательность в массив и выполните задания:

1. Определите, является ли последовательность упорядоченной строго по-

возрастанию;

2. Определите, стоят ли числа в последовательности в форме “пилы”. Т. е. если у

числа есть соседи, то оно либо строго больше соседей, либо строго меньше их. Пример: 1 5 2

7 3 9 -1 10 - числа стоят в форме “пилы”;

3. Определите, является ли последовательность упорядоченной строго по-

убыванию отдельно для четных позиций и отдельно для нечетных.

Задание 5. (доп.)

Вам задана последовательность целых чисел (числа записаны в одной строке через

пробел). Посчитайте количество инверсий в этой последовательности. Числа A и B, стоящие

на позициях i и j соответственно, образуют инверсию, если:

i < j и A > B

Пример:

Ввод:

4 2 5 2 1

Вывод:

7

Задание 6. (доп.)

Вам дано описание сметы на покупку оборудования. Описание состоит из N записей.

Каждая запись - строка следующего формата:

<наименование><пробел><количество><пробел><стоимость за единицу>

Наименование - строка без пробелов.

Вычислите общую стоимость оборудования. Найдите самую дешевую и самую

дорогую единицы товара.

Пример:

Ввод:

4

Notebook 5 30000

Mouse 4 500

Printer 1 9500

Router 1 2000

Вывод:

Total cost: 163500

The cheapest item: Mouse

The most expensive item: Notebook

Необходимый инструментарий: Microsoft Visual Studio.

Тема 3.2. Работа со строковыми данными.

Page 13: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

13

Упражнение:

1. Бегущая строка. Напишите программу, которая по заданной строке с консоли

будет выводить бегущую.

Пример:

Если ввели строку HELLO_WORLD, то на экране в последующие секунды должно

выводиться:

1 секунда. На экране только HELLO_WORLD#

2 секунда. На экране только ELLO_WORLD#H

3 секунда. На экране только LLO_WORLD#HE

4 секунда. На экране только LO_WORLD#HEL

и так далее…

Перед выводом очередной строки экран необходимо очищать. Подсказка: для

организации вывода используйте бесконечный цикл.

2. Вам давно арифметическое выражение, состоящее из неотрицательных целых

чисел, знаков умножения и сложения. Выражение записано без пробелов. Напишите

программу, которая вычислит это выражение.

Пример:

Ввод:

10*5+2*3

Вывод:

56

Подсказка: c помощью Split разбейте строку, где ‘+’ является символом разбиения.

После можно каждую из получившихся строк разбить по символам ‘*’.

3. Вам дано целое положительное число N. Распечатайте первые N строк

треугольника Паскаля (https://ru.wikipedia.org/wiki/Треугольник_Паскаля). Треугольник

Паскаля - это треугольная таблица, состоящая из чисел. В этом треугольнике на вершине и по

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

Пример:

Ввод:

6

Вывод:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

Подсказка: для вычисления чисел очередной строки таблицы удобно использовать

предыдущую. Т. е. можно использовать 2 массива: previous и current (предыдущий и текущий),

вычисляя current через previous и выводя его на экран.

4. Вам дано 2 длинных целых положительных числа равной длины (т. е. числа с

достаточно большим количеством цифр в записи). Вычислите их сумму.

Пример:

Page 14: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

14

Ввод:

123456789123456789111

987654321987654321999

Вывод

1111111111111111111110

Стоит обратить внимание, что стандартные типы данных не позволяют хранить целые

числа достаточно большой длины (более 18 цифр). Подсказка: храните числа в строковом типе

данных. Организуйте сложение, подобно вычислению “столбиком”.

Необходимый инструментарий: Microsoft Visual Studio.

8. ПРИМЕРНАЯ ТЕМАТИКА КУРСОВЫХ РАБОТ

Не планируется.

9. УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ И ПЛАНИРОВАНИЕ

САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ

Таблица 4.

№ Модули и темы Виды СРС Неделя

семестра Объем

часов * Кол-во

баллов обязательные дополнительные

Модуль 1

1.1 Бинарная

арифметика запись

лекций,

проработка

лекций,

выполнение

заданий по

программам

практик и

практикумов

чтение

обязательной и

дополнительной

литературы,

знакомство с

содержанием

электронных

источников

1 50 0-2

1.2 Реализация

вычислительных

функций

запись

лекций,

проработка

лекций,

выполнение

заданий по

программам

практик и

практикумов

чтение

обязательной и

дополнительной

литературы,

знакомство с

содержанием

электронных

источников

3 20 0-16

Всего 70 0-18

Модуль 2

2.1 Проверка

свойств и

значений

запись

лекций,

проработка

лекций,

выполнение

заданий по

программам

практик и

практикумов

чтение

обязательной и

дополнительной

литературы,

знакомство с

содержанием

электронных

источников

7 30 0-11

Page 15: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

15

2.2 Базовые

управляющие

конструкции

запись

лекций,

проработка

лекций,

выполнение

заданий по

программам

практик и

практикумов

чтение

обязательной и

дополнительной

литературы,

знакомство с

содержанием

электронных

источников

10 30 0-16

Всего 60 0-27

Модуль 3

3.1 Одномерные и

многомерные

массивы

запись

лекций,

проработка

лекций,

выполнение

заданий по

программам

практик и

практикумов

чтение

обязательной и

дополнительной

литературы,

знакомство с

содержанием

электронных

источников

13 20 0-15

3.2 Работа со

строковыми

данными

запись

лекций,

проработка

лекций,

выполнение

заданий по

программам

практик и

практикумов

чтение

обязательной и

дополнительной

литературы,

знакомство с

содержанием

электронных

источников

17 30 0-10

Всего 50 0-25

Итого 180 0-100

* - с учетом иных видов работ.

Page 16: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

16

10. ФОНД ОЦЕНОЧНЫХ СРЕДСТВ ДЛЯ ПРОВЕДЕНИЯ ПРОМЕЖУТОЧНОЙ

АТТЕСТАЦИИ ПО ИТОГАМ ОСВОЕНИЯ ДИСЦИПЛИНЫ (МОДУЛЯ)

10.1. Перечень компетенций с указанием этапов их формирования в процессе освоения

образовательной программы (выдержка из матрицы компетенций)

Таблица 5

Дисциплина Семестр

ОК-3 способностью использовать основы экономических знаний в различных сферах

деятельности

Б1.Б.8 Информатика и программирование 1

Б1.В.ДВ.8.3 Основы предпринимательской деятельности 6

ОПК-6

способностью решать стандартные задачи профессиональной деятельности на

основе информационной и библиографической культуры с применением

информационно-коммуникационных технологий и с учетом основных требований

информационной безопасности

Б1.Б.8 Информатика и программирование 1

Б1.Б.11 Микропроцессорная техника в мехатронике и робототехнике 5

Б1.Б.14 Теория автоматического управления 6

Б1.В.ОД.4 Схемотехника 4

Б1.В.ДВ.8.4 Мобильные технологии контроля и управления мехатронными и

робототехническими системами 6

Б2.П.1 Производственная практика 6

Б2.П.2 Преддипломная практика 8

Б3 Государственная итоговая аттестация 10

Page 17: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

17

10.2. Описание показателей и критериев оценивания компетенций на различных

этапах их формирования, описание шкал оценивания

Таблица 6.

Карта критериев оценивания компетенций К

од

ко

мп

етен

ци

и Критерии в соответствии с уровнем освоения

ОП Виды занятий

(лекции, семинар ские,

практические,

лабораторные)

Оценочные

средства (тесты,

творческие

работы,

проекты и др.)

пороговый (удовл.)

61-75 баллов

базовый (хор.) 76-90 баллов

повышенный (отл.)

91-100 баллов

ОК-3 знает:

некоторые

типы данных,

операции и

операторы

языков

программиров

ания;

умеет:

записывать

алгоритмы

решения задач

на языках

высокого

уровня;

использовать

образовательн

ые ресурсы по

дисциплине,

представленны

е в сети

Internet;

владеет:

навыками

создания

приложений

на языке

программиров

ания C#.

знает:

базовые типы

данных,

операции и

операторы

языков

программиров

ания;

умеет:

формализовать

вычислительн

ые и

логические

задачи;

записывать

алгоритмы

решения задач

на языках

высокого

уровня;

использовать

образовательн

ые ресурсы по

дисциплине,

представленны

е в сети

Internet;

владеет:

навыками

создания и

отладки

приложений на

языке

программиров

ания C#.

знает:

многие типы

данных,

операции и

операторы

языков

программиров

ания;

умеет:

формализовать

вычислительн

ые и

логические

задачи;

представлять

алгоритмы

вычислительн

ых и

логических

задач;

записывать

алгоритмы

решения задач

на языках

высокого

уровня;

использовать

образовательн

ые ресурсы по

дисциплине,

представленны

е в сети

Internet;

владеет:

навыками

создания и

отладки

приложений

на языке

программиров

ания C#.

Лекции,

лабораторные

занятия

Собеседование,

контрольная

работа,

программы

компьютерного

тестирования,

экзамен

ОПК-

6

знает:

базовые

понятия и

знает:

некоторые

понятия и

знает:

основные

понятия и

Лекции,

лабораторные

занятия

Собеседование,

контрольная

работа,

Page 18: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

18

терминологию

в области

вычислительно

й техники;

интегрированн

ые среды (IDE)

разработки

приложений;

умеет:

использовать

стандартные

классы языков

ООП;

использовать

современные

IDE для

создания

собственных

проектов;

владеет:

навыками

создания

приложений

на языке

программиров

ания C#;

навыками

использования

интегрированн

ой среды

разработки

Microsoft

Visual Studio.

терминологию

в области

вычислительно

й техники;

интегрированн

ые среды (IDE)

разработки

приложений;

описание

классов и

методов

приложения;

умеет:

использовать

стандартные

классы языков

ООП;

проектировать

собственные

классы и

методы;

использовать

современные

IDE для

создания

собственных

проектов и

отладки

соответствую

щих

приложений;

владеет:

навыками

создания и

отладки

приложений

на языке

программиров

ания C#;

навыками

использования

интегрированн

ой среды

разработки

Microsoft

Visual Studio.

терминологию

в области

вычислительно

й техники;

основы

построения и

архитектуры

компьютера;

способы

представление

информации в

памяти;

интегрированн

ые среды (IDE)

разработки

приложений;

описание

классов и

методов

приложения;

принципы

обработки

исключительн

ых ситуации в

языках ООП;

умеет:

использовать

стандартные

классы языков

ООП;

проектировать

собственные

классы и

методы;

использовать

современные

IDE для

создания

собственных

проектов и

отладки

соответствую

щих

приложений;

владеет:

навыками

создания и

отладки

приложений

на языке

программиров

ания C#;

навыками

использования

интегрированн

ой среды

разработки

программы

компьютерного

тестирования,

экзамен

Page 19: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

19

Microsoft

Visual Studio.

10.3. Типовые контрольные задания или иные материалы, необходимые для оценки

знаний, умений, навыков и (или) опыта деятельности, характеризующей этапы

формирования компетенций в процессе освоения образовательной программы

Учебно-методическое обеспечение выполнения обучающимися самостоятельных

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

задания (выдаются обучающимся в электронном виде).

Контрольные вопросы для проведения текущего контроля и промежуточной

аттестации:

Информационные процессы и их модели, кодирование, аналоговая и цифровая

обработка. Информация и ее свойства. Измерение и представление информации.

Классификация и кодирование информации.

Средства и алгоритмы представления, хранения и обработки информации.

Архитектура персональных компьютеров. Основные функциональные части

компьютера, их взаимодействие. Принцип запоминаемой программы.

Двоичная система счисления. Логические операции.

Компьютерные сети. Архитектура компьютерных сетей.

Классификация программного обеспечения. Системное программное обеспечение.

Операционные системы.

Алгоритмы. Виды алгоритмов. Язык программирования C#. Пространство имен.

Основные конструкции языка C#. Алфавит языка. Синтаксис. Идентификаторы.

Служебные слова. Литералы.

Типы данных. Встроенные типы данных. Преобразования типов.

Константы и переменные. Перечисления.

Операции в языке C#. Приоритет. Выражения.

Операторы. Операторы следования, ветвления, цикла. Операторы перехода.

Консоль: организация ввода-вывода.

Рекурсивные методы.

Работа с массивами.

"Вычислите и запишите ответ в десятичной системе счисления:

74 ^ 123 ^ 24"

"Вычислите и запишите ответ в десятичной системе счисления:

(57 & 43) | 117"

Предположим, что числа хранятся в 8 битах. Найдите двоичное дополнение числа 42

и запишите ответ в двоичной системе счисления.

Предположим, что числа хранятся в 8 битах. Найдите двоичное дополнение числа 117

и запишите ответ в двоичной системе счисления.

Сложите двоичные числа 01001101 и 10010101. Запишите ответ в шестнадцатеричном

виде.

Перемножьте двоичные числа 10011 и 10101. Запишите ответ в десятичной системе

счисления.

"Предположим, что числа хранятся в 8 битах. Вычислите и запишите ответ в

десятичной системе счисления:

(41 >> 2) ^ (13 << 3)"

"Вычислите и запишите ответ в десятичной системе счисления:

1^2^3^4^5^6^7^8"

"Вычислите и запишите ответ в шестнадцатеричной системе счисления:

(76 | 29) &111"

"Вычислите и запишите ответ в десятичной системе счисления:

25 | (73^48)"

Page 20: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

20

Вам дано целое положительное число в переменной N. Напишите код, используя цикл

for, который выводит на экран все делители этого числа.

Вам дано целое положительное число в переменной N - номер месяца (от 1 до 12).

Напишите код, используя оператор if, который выводит на экран время года,

соответствующее номеру месяца.

"Вам дано целое положительное число в переменной N. Напишите код, используя

цикл for, для вычисление суммы последовательности чисел:

1*2 + 2*3 + 3*4 + … + N*(N+1)"

Вам дано четырехзначное целое положительное число в переменной N. Напишите

код, переставляющий цифры этого числа в обратном порядке. Ответ должен лежать в

переменной N.

"Вам даны вещественные числа в переменных A, B, C. Напишите код, который

вычисляет следующее выражение и выводит ответ на экран:

√(A^2+B^3 )⋅√(C-A-B)⋅sin(ABC)"

Вам дан номер года в переменной N. Напишите код, который присваивает в булеву

переменную значение true, если год високосный. Год високосный - если номер года делится

на 4, а также если он делится на 100, то должен делиться на 400. (1333 и 1900 - не

високосные, 1204 и 2000 - високосные).

Напишите код, который выводит таблицу умножения чисел от 1 до 9 на экран.

Вам дано вещественное число в переменной A. Напишите код, который вычисляет

A^13 , используя только 5 операций умножения, и выводит результат на экран. Math.Pow

запрещено использовать.

Вам дан массив вещественных чисел A. Напишите код, который вычисляется

количество положительных и отрицательных чисел в массив и выводит эти два числа на

экран.

Вам дан массив вещественных чисел A. Напишите код, который вычисляет и выводит

на экран среднее квадратическое чисел (среднее арифметическое среди квадратов всех

чисел).

"Какие значения будут лежать в массиве A, после выполнения следующего кода:

int[] A = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i * i;

for (int i = 0; i < 6; i += 2)

A[i] += A[i + 1];

for (int i = 4; i >= 0; i -= 3)

A[i] = 0;"

"Какое значение будут лежать в переменной sum, после выполнения следующего

кода:

int sum = 0;

for (int i = 0; i < 10; ++i)

{

if (i % 2 == 0)

sum += 2 * i;

else

sum -= i - 1;

}"

"Какое значение будет лежать в переменной res, после выполнения следующего кода:

double res = 0;

double L = 0, R = 10;

while (R - L > 1)

{

double M = (L + R) / 2;

Page 21: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

21

res += M;

R = M;

}"

"Какое значение будет лежать в переменной res, после выполнения следующего кода:

int i = 0, j = 9;

int res = 0;

while (true)

{

i++;

j--;

res += i * j;

if (i > j)

break;

}"

"Что будет выведено на экран?

for(int i = 1; i <= 6; ++i)

{

for(int j = i; j <= 6; ++j)

Console.Write(""{0} "", i * j);

Console.WriteLine();

}"

"Что будет выведено на экран?

int[] A = new int[6];

int[] B = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i + 1;

for(int i = 0; i < 6; i += 2)

{

B[i] = A[i + 1];

B[i + 1] = A[i];

}

int res = 0;

for (int i = 0; i < 6; ++i)

res += A[i] - B[i];

Console.WriteLine(res);"

"Что будет выведено на экран?

int x = 12345;

int y = x / 100 % 10;

int z = x / 1000 % 10;

int w = x / 10 % 10;

x -= w * 10;

x -= y * 100;

x -= z * 1000;

x += w * 100;

x += y * 1000;

x += z * 10;

Console.WriteLine(x);"

"Что будет выведено на экран?

int x = 42;

int y = 1;

for (int i = 1; i <= 7; ++i)

y *= 2;

Page 22: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

22

for(int i = 7; i >= 0; --i)

{

if (x >= y)

{

x -= y;

Console.Write(1);

}

else

Console.Write(0);

y /= 2;

}"

"Что будет выведено на экран?

double x = 8;

double s = 0;

for(int i = 0; i < 13; i += 3)

{

if (i % 2 == 0)

{

s += x;

x /= 2;

}

}

Console.WriteLine(s);"

"Что будет выведено на экран?

double res = 0;

int i = 0;

while (i < 8)

{

res += Math.Pow(2, i);

i += 2;

}

Console.WriteLine(res);".

Контрольные тестовые вопросы для проведения текущего контроля и промежуточной

аттестации:

Применяется компьютерное тестирование закрытого типа с использованием выбора

правильного ответа из множества предлагаемых вариантов. В примерах тестовых заданий из

базы вопросов, используемых при компьютерном тестировании бакалавров, приводится. Вариант 1

За количество отработанных дней в году (t), сотрудник предприятия должен произвести

нормированное количество деталей (s). Сколько деталей должен сделать работник за 327

дней: int t = 327;

int s = 0;

s = t % 10 + (t / 10) % 10 + (t / 100) % 10;

Console.WriteLine(s);

1. 35 2. 7 3. 362 4. 12

Скорость работы вычислительного устройства задается …

1. Тактовым генератором

Page 23: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

23

2. Метрономом

3. Частотой процессора

4. Заводом-производителем

В экономическом контексте внутренний архитектурный уровень определяет …

1. Физическое устройство решения

2. Понятийное устройство решения

3. Видение решения, воспринимаемое пользователей

4. Техническое устройство решения

Архитектура в системе экономических знаний – это …

1. Набор ключевых решений

2. Внешний вид решения

3. Способ организации системы

4. Устройство компьютера

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

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

при t=781: int t = 781;

int s = ((t / 10) % 10) * 10;

s = s + t % 10;

s = s + (t / 100) * 100;

Console.WriteLine(s);

1. 871

2. 781

3. 178

4. 4563

Вариант 2

В течении года станок работает x недель. При этом он должен находиться на обслуживании y

недель. Сколько недель нужно обслуживать станок при отработанных 41 неделе: int x = 41;

int y = x / 2;

x = y / 8;

Console.WriteLine(x);

1. 0 2. 2 3. 2,5625 4. 21

Данные в вычислительной системе передаются по …

1. Шине

2. Магистрали

3. Проводам

4. Любой среде

В экономическом контексте концептуальный архитектурный уровень определяет …

1. Физическое устройство решения

2. Понятийное устройство решения

3. Видение решения, воспринимаемое пользователей

4. Техническое устройство решения

Page 24: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

24

Информация в информационно-экономической системе – это …

1. Программный код

2. 0, 1

3. Сведения, не зависимые от формы представления

4. Знания о мире

Техническое обслуживание станка производится через каждые 15 дней. Известно, что после

последнего технического обслуживания прошло x дней. Какое выражение позволяет узнать,

нужно ли производить техническое обслуживание: 1. x % 3 == 0 || x % 5 == 0 2. x / 3 == 0 || x / 5 == 0 3. x % 3 == 0 && x % 5 == 0 4. x / 3 == 0 && x / 5 == 0

1. Вариант 3

Производство детали x требует определенное количество деталей y, которое рассчитывается

по приведенной программе. Сколько нужно деталей y для производства 3 деталей x: int x = 3;

int y = 1 * 2 * x;

x = x * 4;

y = x * 5;

Console.WriteLine(y);

1. 24

2. 60

3. 120

4. 6

Базовые инструкции вычислительной системы:

1. 0, 1

2. Сложение, вычитание, умножение

3. Последовательность, переход

4. Последовательность, выбор, повторение

В экономическом контексте внешний архитектурный уровень определяет …

1. Физическое устройство решения

2. Понятийное устройство решения

3. Видение решения, воспринимаемое пользователей

4. Техническое устройство решения

Данные в информационно-экономической системе – это …

1. Программный код

2. 0, 1

3. Способ представления информации

4. Содержимое файлов

Работник цеха производит детали, обозначенные номерами 1, 2, 3, 6, 7, 8. Выражение "деталь

x произведена этим работником" можно записать: 1. x == 1, 2, 3, 6, 7, 8 2. x >= 1 && x <= 3 || x >= 6 && x <= 8 3. x >= 1 || x <= 3 || x >= 6 || x <= 8 4. x >= 1 || x <= 3 && x >= 6 || x <= 8

Page 25: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

25

Вариант 1

Какой из перечисленных типов данных вещественный?

1. int

2. double

3. bool

4. string

Каков будет результат работы программы: double[] a = new double[8];

for(int i = 0; i < 8; i++)

a[i] = i / 1.0;

double s = 0;

for(int i = 1; i < 7; i++)

s += a[i] / 2;

Console.WriteLine(s);

1. 9,0

2. 28

3. 10,5

4. 14,0

Второе название булевого типа данных:

1. Символьный

2. Вещественный

3. Целочисленный

4. Логический

Каков будет результат работы программы: int x = 0;

int i = 0;

while (i <= 6);

{

x += i;

i++;

}

Console.WriteLine(x);

1. 21

2. 28

3. 15

4. Программа "повиснет"

43 & 91 = ? (& - И)

1. 3913

2. 123

3. 25

4. 11

2. Вариант 2

Какой из перечисленных типов данных целочисленный?

1. int

2. double

3. bool

Page 26: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

26

4. string

Каков будет результат работы программы: int[] a = new int[8];

for(int i = 0; i < 8; i++)

a[i] = i * i;

int s = 0;

for(int i = 0; i < 7; i++)

s += a[i + 1] - a[i];

Console.WriteLine(s);

1. 36

2. 49

3. Ошибка

4. 7

Как называется операция увеличения переменной на единицу?

1. Итерация

2. Инкремент

3. Декремент

4. Условие

Каков будет результат работы программы: int x = 0;

int i = 3;

while (i < 7)

{

x += i;

i++;

}

Console.WriteLine(x);

1. 18

2. Программа "повиснет"

3. 25

4. 12

17 ^ 23 = ? (^ - искл. ИЛИ)

1. 17

2. 6

3. 40

4. 391

3. Вариант 3

Какую арифметическую операцию выполняет процессор?

1. +

2. –

3. *

4. /

Каков будет результат работы программы: int s = 0;

for(int i = 0; i < 10; i += 2)

{

Page 27: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

27

s += i / 3;

}

Console.WriteLine(s);

1. Программа "повиснет"

2. 5

3. 12

4. 20

Как называется однократное выполнение кода в циклическом операторе?

1. Итерация

2. Декремент

3. Инициализация

4. Тело

Каков будет результат работы программы: int s = 0;

for(int i = 0; i < 7; i++)

{

if (i % 2 == 0)

{

s += 3;

}

else

{

s += 2;

}

}

Console.WriteLine(s);

1. Программа "повиснет"

2. 20

3. 17

4. 18

42 | 33 = ? (| - ИЛИ)

4. 9

5. 43

6. 11

7. 45

10.4. Методические материалы, определяющие процедуры оценивания знаний, умений,

навыков и (или) опыта деятельности характеризующих этапы формирования

компетенций

Собеседование (УО-1) – специальная беседа преподавателя со студентом на темы,

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

определенному разделу, теме, проблеме и т.п.

Зачет (УО-3) представляют собой форму периодической отчетности студента,

определяемую учебным планом подготовки по направлению ВО. Зачет служит формой

проверки качества выполнения студентами лабораторных работ в соответствии с

утвержденной программой. Оценка, выставляемая за зачет, - квалитативного типа (по шкале

наименований «зачтено» / «не зачтено»).

Контрольная работа (ПР-2) является более сложной формой проверки. Контрольная

работа, как правило, состоит из небольшого количества средних по трудности вопросов, задач

или заданий, требующих поиска обоснованного ответа. Контрольная работа может занимать

Page 28: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

28

часть или полное учебное занятие с разбором правильных решений на следующем занятии.

Рекомендуемая частота проведения – не менее одной при каждой текущей и промежуточной

аттестации.

Аттестующие тесты (ИС-2) могут использоваться как для проведения текущего

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

аттестации.

Электронный практикум (ИС-3) содержит набор заданий, которые необходимо

выполнить студенту. Предъявляемое задание выбирается из базы данных и закрепляется за

конкретным студентом. В отличие от тестов задание, которое предъявляется студенту в рамках

практикума, не требует мгновенного выполнения. Системой определяется срок, в течение

которого задание должно быть сдано. Результатом выполнения задания должен быть файл,

отсылаемый студентом в базу данных. Проверка результата работы студента осуществляется

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

указав выявленные недостатки, не позволяющие ее принять. При неудовлетворительной

оценке студенту может быть выдан другой вариант задания.

Согласно «Положению о рейтинговой системе оценки успеваемости студентов

Федерального государственного бюджетного образовательного учреждения высшего

профессионального образования «Тюменский государственный университет» (приложение 1

к приказу ректора № 190 от 04.04.2014г.) всех формы текущего контроля, предусмотренные

рабочей программой, оцениваются в баллах. Дисциплинарные модули, формы текущего

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

план».

Студенты, набравшие по дисциплине в период проведения текущего контроля от 35 до

60 баллов допускаются к зачету или экзамену. Если в период проведения текущей аттестации

студент набрал 61 балл и более, то он автоматически получает зачет или экзаменационную

оценку в соответствии со шкалой перевода, но в то же время он имеет право повысить оценку,

полученную по итогам рейтинга (удовлетворительно, хорошо), путем сдачи экзамена.

Шкала перевода баллов в оценки:

от 0 до 60 баллов – «не зачтено»;

от 61 до 100 баллов – «зачтено»;

60 баллов и менее – «неудовлетворительно»;

от 61 до 75 баллов – «удовлетворительно»;

от 76 до 90 баллов – «хорошо»;

от 91 до 100 баллов – «отлично».

Преподаватель может использовать систему штрафов, уменьшая набранные баллы за

пропуски занятий без уважительных причин, за нарушение сроков выполнения учебных

заданий, за систематический отказ отвечать на занятиях и т.д. Возможно также начисление

премиальных баллов за работы, выполненные студентом на высоком уровне.

Студенты, набравшие по дисциплине менее 35 баллов к экзамену (зачету) не

допускаются. Необходимое количество баллов (до 35) для получения допуска к экзамену

(зачету), студенты набирают после третьей контрольной недели.

11. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ

Используются репродуктивные образовательные технологии – выполнение

контрольных работ (модули 1-3), зачет. Задействованы также продуктивные образовательные

технологии – выполнение индивидуальных заданий.

В рамках учебного курса предусматривается разбор конкретных ситуаций (метод

кейсов). Технология концентрированного обучения. Технология обучения как учебного

исследования. Традиционная технология с использованием таких элементов как лекции и

практические задания.

Предусмотрены интерактивные формы проведения занятий:

анализ результатов;

Page 29: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

29

организация дискуссий и круглых столов;

проведение семинаров в диалоговом режиме.

12. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ

ДИСЦИПЛИНЫ

12.1. Основная литература

1. Иванова, Г. С. Программирование: учебник для студентов вузов, обучающихся по

направлению 230100 "Информатика и вычислительная техника"/ Г. С. Иванова. -

Москва: КНОРУС, 2013. - 432 с;

2. Кирнос В. Н. Введение в вычислительную технику: основы организации ЭВМ и

программирование на Ассемблере: учебное пособие [Электронный ресурс]: Учебное

пособие. / В. Н Кирнос Электрон. текстовые дан. — Томск: Эль Контент, 2011. – Режим

доступа: http://biblioclub.ru/index.php?page=book&id=208652&sr=1 (дата обращения:

11.01.2017)

12.2. Дополнительная литература

1. Языки программирования (Си/Си++) [Электронный ресурс]: учебно-методическое

пособие / Министерство образования и науки Российской Федерации, Федеральное

государственное бюджетное образовательное учреждение высшего профессионального

образования, Омский государственный университет им. Ф.М. Достоевского; сост. В.Н.

Бородихин. - Омск: Омский государственный университет, 2013. - 200 с. – Режим

доступа: http://biblioclub.ru/index.php?page=book&id=237519 (дата обращения:

10.10.2016);

2. Алгоритмизация и программирование: Учебное пособие / С.А. Канцедал. - М.: ИД

ФОРУМ: НИЦ ИНФРА-М, 2014. - 352 с.

http://znanium.com/catalog.php?bookinfo=429576 (дата обращения 11.01.2017);

3. Максимов Н. В. Архитектура ЭВМ и вычислительных систем: Учебник

[Электронный ресурс]/ Н.В. Максимов, Т.Л. Партыка, И.И. Попов. - 5-e изд., перераб.

и доп. - М.: Форум: НИЦ ИНФРА-М, 2015 - 512 с. - ISBN 978-5-91134-742-0. Режим

доступа: URL: http://znanium.com/bookread2.php?book=492687. (Дата обращения

11.01.2017).

12.3. Интернет-ресурсы

1. http://ru.wikipedia.org – Свободная энциклопедия;

2. http://study.utmn.ru – Портал доступа к электронным образовательным ресурсам

ТюмГУ;

3. http://biblioclub.ru – Электронно-библиотечная система «Университетская

библиотека он-лайн»;

4. http://window.edu.ru/unilib – Единое окно доступа к электронным образовательным

ресурсам;

5. http://znanium.com – Электронно-библиотечная система издательства «Инфра».

13. ПЕРЕЧЕНЬ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, ИСПОЛЬЗУЕМЫХ ПРИ

ОСУЩЕСТВЛЕНИИ ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА ПО ДИСЦИПЛИНЕ

(МОДУЛЮ), ВКЛЮЧАЯ ПЕРЕЧЕНЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И

ИНФОРМАЦИОННЫХ СПРАВОЧНЫХ СИСТЕМ (ПРИ НЕОБХОДИМОСТИ)

При выполнении практических работ, ведении лекций в качестве информационных

технологий используется программное обеспечение из пакета Microsoft Office, а также

Microsoft Visual Studio.

Используются компьютерные обучающие системы (ЭБД, ЭБС, ЭБ), Информатика,

информационная образовательная среда.

Доступ к компьютерным обучающим системам осуществляется на основе договоров

ТюмГУ с создателями через компьютерную сеть университета (ЭБД, ЭБС, ЭБ), либо через

виртуальные читальные залы университета, в частности, читальный зал для преподавателей и

аспирантов ИБЦ (ЭБД РГБ).

Page 30: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

30

Доступ к информационной образовательной среде осуществляется через локальную

сеть ТюмГУ.

14. ТЕХНИЧЕСКИЕ СРЕДСТВА И МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ

ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ

Компьютерный класс с установленным программным обеспечением. Для проведения

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

экраном, либо интерактивной доской, либо whiteboard с набором маркеров.

15. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ОБУЧАЮЩИХСЯ ПО ОСВОЕНИЮ

ДИСЦИПЛИНЫ

Студенты ведут запись лекций по темам дисциплины, во внеаудиторное время

выполняют проработку лекционного материала. На лабораторных занятиях студенты

выполняют задания по программам практик и практикумов (с применением соответствующих

программных продуктов).

Темы дисциплины, вызывающие дополнительный интерес или сложности при

освоении, рассматриваются на консультациях по дисциплине. Отдельные вопросы студентов

разбираются на индивидуальных консультациях.

Студент также может представить результаты самостоятельной работы в форме

презентации, доклада или исследовательской работы (по согласованию c преподавателем).

Перед проведением контрольной недели осуществляется выполнение контрольной

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

основную и дополнительную литературу при подготовке к контрольной работе и зачету. При

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

работах и представленные в рабочей программе, опираясь на основную и дополнительную

литературу и соответствующие Интернет-ресурсы.

Page 31: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Приложение 1

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное

образовательное учреждение высшего образования

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра математики и информатики

М.В. Григорьев

ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ

Учебно-методический комплекс. Методические рекомендации

по выполнению лабораторных работ

для студентов направления

15.03.06 «Мехатроника и робототехника»

прикладной бакалавриат, очной формы обучения

Тюмень – 2017

Page 32: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Методические рекомендации призваны обеспечить Федеральный

государственный образовательный стандарт по направлению 15.03.06

Мехатроника и робототехника и формирование следующих компетенций:

• способность использовать основы экономических знаний в

различных сферах деятельности (ОК-3);

• способность решать стандартные задачи профессиональной

деятельности на основе информационной и библиографической культуры с

применением информационно-коммуникационных технологий и с учетом

основных требований информационной безопасности (ОПК-6).

© Тюменский государственный университет, 2017

© Григорьев М.В., 2017

Page 33: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

3

ВВЕДЕНИЕ

Назначение учебного пособия – научить написанию программ

линейной, разветвляющейся и циклической структуры на языке

программирования высокого уровня С#.

Предполагается не только написание программы, но и все стадии

программирования до получения результата расчета на компьютере: набор

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

отладка, выполнение в консольном режиме.

После выполнения предлагаемых заданий обучающийся будет

знать:

1. общие сведения о языке программирования С#;

2. математические функции языка программирования С#;

3. порядок выполнения операций при выполнении вычислений;

4. правила написания алгоритмов и программ линейной,

разветвляющейся и циклической структуры;

5. правила набора и выполнения программы в специализированной

среде программирования.

После выполнения предлагаемых заданий обучающийся будет

уметь:

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

структуры, не содержащие ошибок;

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

редакторе, компиляцию, отладку, выполнение программы в консольном

режиме до получения правильного результата.

Основной средой для разработки программ на С# служит Visual

Studio корпорации Microsoft. Для компилирования программ, как

приведенных в качестве примера, так и при выполнении заданий к

лабораторных работам, потребуется одна из версий Visual Studio.

В пособии приведены общие сведения о языке программирования

высокого уровня С#, а также даны необходимые инструкции,

позволяющие освоить написание программ линейной, разветвляющейся и

циклической структуры

Задания, представленные в пособии, могут быть использованы в

качестве домашних, практических и лабораторных работ как для

студентов очной, так и заочной формы обучения. В процессе работы

предполагается фиксация времени выполнения отдельного задания с

занесением в специальную таблицу (таблицу результатов).

Page 34: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

4

1. ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С#

Язык С# был создан корпорацией Microsoft в конце 1990 годов для

поддержки среды .NET Framework. Его главным разработчиком был

Андерс Хейльсберг (Anders Hejlsberg) — известнейший специалист по

программированию. С# происходит напрямую от двух самых удачных в

области программирования языков: С и C++. От языка С он унаследовал

синтаксис, многие ключевые слова и операторы, а от C++ —

усовершенствованную объектную модель.

Для компилирования и выполнения примеров программ на С# 4.6,

приведенных в пособии, а также для выполнения лабораторных работ на

компьютере, вам потребуется пакет Visual Studio 2015 (или другая версия).

Этот пакет под названием Visual Studio 2015: Express 2015 для Desktop

можно бесплатно скачать по адресу

https://www.visualstudio.com/downloads/download-visual-studio-vs. К работе

с пакетом желательно приступать после предлагаемой регистрации.

Visual C# (произносится как "Си Шарп") создан для работы над

разными типами приложений, которые выполняются в окружении .NET

Framework. Назначение .NET Framework — служить средой для

поддержки, разработки и выполнения сильно распределенных

компонентных приложений. Она обеспечивает совместное использование

разных языков программирования, а также безопасность, переносимость

программ и общую модель программирования для платформы Windows.

Что же касается взаимосвязи с С#, то среда .NET Framework определяет

два очень важных элемента. Первым из них является общеязыковая среда

выполнения (Common Language Runtime — CLR). Это система,

управляющая выполнением программ. Среди прочих преимуществ —

CLR как составная часть среды .NET Framework поддерживает

многоязыковое программирование, а также обеспечивает переносимость и

безопасное выполнение программ.

Вторым элементом среды .NET Framework является библиотека

классов. Эта библиотека предоставляет программе доступ к среде

выполнения. Так, если требуется выполнить операцию ввода-вывода,

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

библиотека классов .NET. Для тех, кто только начинает изучать

программирование, понятие класса может оказаться незнакомым. Если

программа ограничивается средствами, определяемыми в библиотеке

классов .NET, то такая программа может выполняться везде, где

поддерживается среда выполнения .NET.

Более подробные сведения о важнейших понятиях объектно-

ориентированного программирования, таких как: класс, метод,

Page 35: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

5

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

предлагаемого учебного пособия и могут быть получены из

рекомендованной литературы [1 - 4].

В С# метод служит в качестве аналога подпрограммы.

Перейдем к примеру конкретной программы на С#. Для начала

скомпилируем и выполним короткую программу.

/*

Это простая программа на С#.

Имя файла программы Program.cs

*/

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

// Любая программа на С# начинается с вызова метода Main().

static void Main(string[] args)

{

Console.WriteLine("Простая программа на С#.");

}

}

}

Интегрированная среда разработки программ, созданная

корпорацией Microsoft дает возможность править, компилировать,

выполнять и отлаживать программы на С#.

Ниже приведена краткая процедура правки, компилирования и

выполнения программы на С# в интегрированной среде разработки Visual

Studio 2010. Предполагается, что используется русифицированная версия.

В других версиях Visual Studio возможны незначительные отличия.

Общий вид среды разработки.

Page 36: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

6

1. Создайте новый (пустой) проект С#, выбрав команду Файл –

Создать проект … - Консольное приложение - ОК.

В файлах с исходным текстом программ на С# условно принято

расширение .cs .

Итак, анализируемая программа начинается с таких строк.

/*

Это простая программа на С#.

Имя файла программы Program.cs

*/

Page 37: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

7

Эти строки образуют комментарий. Как и в большинстве других

языков программирования, в С# допускается вводить комментарии в файл

с исходным текстом программы. Содержимое комментария игнорируется

компилятором. Но, с другой стороны, в комментарии дается краткое

описание или пояснение работы программы для всех, кто читает ее

исходный текст. В данном случае в комментарии дается описание

программы и напоминание о том, что ее исходный файл называется Имя

файла программы Program.cs .

Разумеется, в комментариях к реальным приложениям обычно

поясняется работа отдельных частей программы или же функции

конкретных средств.

В С# поддерживаются три стиля комментариев. Один из них

приводится в самом начале программы и называется многострочным

комментарием. Этот стиль комментария должен начинаться символами /*

и оканчиваться символами */. Все, что находится между этими символами,

игнорируется компилятором. Как следует из его названия, многострочный

комментарий может состоять из нескольких строк.

Рассмотрим следующие строки программы.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

Эти строки означают, что в программе используется пространство

имен System, а также другие пространства имен. В С# пространство имен

определяет область объявлений. Благодаря пространству имен одно

множество имен отделяется от других. По существу, имена, объявляемые

в одном пространстве имен, не вступают в конфликт с именами,

объявляемыми в другом пространстве имен. В анализируемой программе

используется пространство имен System, которое зарезервировано для

элементов, связанных с библиотекой классов среды .NET Framework,

применяемой в С#. Ключевое слово using просто констатирует тот факт,

что в программе используются имена в заданном пространстве имен.

Более подробные сведения о пространстве имен могут быть получены из

рекомендованной литературы.

Перейдем к следующей строке программы. class Program {

В этой строке ключевое слово class служит для объявления вновь

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

фигурной скобки ({) и оканчивается закрывающей фигурной скобкой (}).

Элементы, заключенные в эти фигурные скобки, являются членами класса.

Page 38: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

8

Следующая строка программы содержит однострочный

комментарий.

// Любая программа на С# начинается с вызова метода Main().

Это второй стиль комментариев, поддерживаемых в С#.

Однострочный комментарий начинается символами //. Несмотря на

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

многострочными комментариями для более длинных примечаний и

однострочными комментариями для коротких, построчных примечаний к

программе.

Перейдем к анализу следующей строки программы.

static void Main(string[] args) {

Эта строка начинается с метода Main (string[] args). Как упоминалось

выше, в С# подпрограмма называется методом. И, как поясняется в

предшествующем комментарии, именно с этой строки начинается

выполнение программы. Выполнение всех приложений С# начинается с

вызова метода Main (string[] args).

Данная строка начинается с ключевого слова static. Метод,

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

объекта его класса. Необходимость в этом объясняется тем, что метод

Main (string[] args) вызывается при запуске программы. Ключевое слово

void указывает на то, что метод Main (string[] args) не возвращает

значение. Методы могут также возвращать значения. Строка string[] args в

круглых скобках после имени метода Main означает, что этому методу

может быть передана некоторая информация. И последним элементом

анализируемой строки является символ {, обозначающий начало тела

метода Main (string[] args). Весь код, составляющий тело метода,

находится между открывающими и закрывающими фигурными скобками.

Рассмотрим следующую строку программы. Обратите внимание на

то, что она находится внутри метода Main (string[] args).

Console.WriteLine("Простая программа на С#.);

В этой строке осуществляется вывод на экран текстовой строки

"Простая программа на С# . ". Сам вывод выполняется встроенным

методом WriteLine(). В данном примере метод WriteLine() выводит на

экран строку, которая ему передается.

Информация, передаваемая методу, называется аргументом. Помимо

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

виды информации.

Анализируемая строка начинается c Console — имени

предопределенного класса, поддерживающего ввод-вывод на консоль.

Под консолью понимается либо монитор (для вывода информации), либо

клавиатура (для ввода информации). Понятие «консольное приложение»

означает такой вид программы, в которой ввод информации при запуске

Page 39: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

9

программы осуществляется с клавиатуры (без использования мыши), а

вывод – на экран монитора, причем построчно и в черно-белом режиме.

Этим консольное приложение отличается от приложения Windows Form, в

котором используется графический интерфейс. Сочетание обозначений

Console и WriteLine() указывает компилятору на то, что метод WriteLine()

является членом класса Console.

Обратите внимание на то, что оператор, содержащий вызов метода

WriteLine(), оканчивается точкой с запятой, как, впрочем, и

рассматривавшаяся ранее директива using System. Как правило, операторы

в С# оканчиваются точкой с запятой.

Исключением из этого правила служат блоки, которые начинаются

символом { и оканчиваются символом }. Именно поэтому строки

программы с этими символами не оканчиваются точкой с запятой. Блоки

обеспечивают механизм группирования операторов.

Первый символ } в анализируемой программе завершает метод Main

(string[] args), а второй — определение класса Program.

И наконец, в С# различаются прописные и строчные буквы.

Несоблюдение этого правила может привести к серьезным осложнениям.

Так, если вы неумышленно наберете main вместо Main или же writeline

вместо WriteLine, анализируемая программа окажется ошибочной.

Применение отступов в тексте программы общепринято и позволяет

повысит читабельность программы.

Переменная — это участок памяти (как правило, несколько байтов),

у которого есть имя. Этому участку памяти может быть присвоено

значение. Переменная называется так потому, что ее значение может быть

изменено по ходу выполнения программы. Иными словами, содержимое

переменной подлежит изменению и не является постоянным.

В приведенной ниже программе создаются две переменные — х и у.

// Эта программа демонстрирует применение переменных.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Example2

{

Page 40: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

10

// Любая программа на С# начинается с вызова метода Main().

static void Main(string[] args)

{

int x; // здесь объявляется переменная

int у; // здесь объявляется еще одна переменная

х = 100; // здесь переменной х присваивается значение 100

Console.WriteLine("х содержит " + х);

у = х / 2;

Console.Write("у содержит х / 2: ") ;

Console.WriteLine(у);

}

}

}

Выполнение этой программы дает следующий результат.

х содержит 100

у содержит х / 2: 50

В этой программе вводится ряд новых понятий. Прежде всего, в

операторе

int x; // здесь объявляется переменная

объявляется переменная целочисленного типа с именем х. В С# все

переменные должны объявляться до их применения. Кроме того, нужно

обязательно указать тип значения, которое будет храниться в переменной.

Это так называемый тип переменной.

В данном примере в переменной х хранится целочисленное

значение, т.е. целое число. Для объявления в С# переменной

целочисленного типа перед ее именем указывается ключевое слово int.

Таким образом, в приведенном выше операторе объявляется переменная х

типа int.

В следующей строке объявляется вторая переменная с именем у.

int у; // здесь объявляется еще одна переменная

Как видите, эта переменная объявляется таким же образом, как и

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

В целом, для объявления переменной служит следующий оператор:

тип имя_переменной;

Page 41: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

11

где тип — это конкретный тип объявляемой переменной, а

имя_переменной — имя самой переменной. Помимо типа int, в С#

поддерживается ряд других типов данных.

В следующей строке программы переменной х присваивается

значение 100.

х = 100; // здесь переменной х присваивается значение 100 ,

В С# оператор присваивания обозначается одиночным знаком

равенства (=).

Данный оператор выполняет копирование значения,

расположенного справа от знака равенства, в переменную, находящуюся

слева от него.

В следующей строке программы осуществляется вывод на экран

текстовой строки "х содержит" и значения переменной х.

Console.WriteLine("х содержит " + х) ;

В этом операторе знак + обозначает, что значение переменной х

выводится вслед за предшествующей ему текстовой строкой. Если

обобщить этот частный случай, то с помощью знака операции + можно

организовать сцепление какого угодно числа элементов в одном

операторе с вызовом метода WriteLine().

В следующей строке программы переменной у присваивается

значение переменной х, деленное на 2.

у = х / 2;

В этой строке значение переменной х делится на 2, а полученный

результат сохраняется в переменной у. Таким образом, после выполнения

данной строки в переменной у содержится значение 50.

Рассмотрим две оставшиеся строки программы.

Console.Write("у содержит х / 2: ");

Console.WriteLine(у);

В этих строках обнаруживаются еще две особенности. Во-первых,

для вывода текстовой строки "у содержит х / 2 : "на экран используется

встроенный метод Write (). После этой текстовой строки новая строка не

следует. Это означает, что последующий вывод будет осуществлен в той

же самой строке. Метод Write() подобен методу WriteLine(), за

Page 42: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

12

исключением того, что после каждого его вызова вывод не начинается с

новой строки. И во-вторых, обратите внимание на то, что в вызове метода

WriteLine() указывается только переменная у. Оба метода, Write() и

WriteLine(), могут быть использованы для вывода значений любых

встроенных в С# типов.

В С# точка с запятой обозначает конец оператора. Это означает, что

каждый оператор в отдельности должен оканчиваться точкой с запятой.

В С# идентификатор представляет собой имя, присваиваемое

методу, переменной или любому другому определяемому пользователем

элементу программы.

Идентификаторы могут состоять из одного или нескольких

символов. Имена переменных могут начинаться с любой буквы алфавита

или знака подчеркивания. Далее может следовать буква, цифра или знак

подчеркивания. С помощью знака подчеркивания можно повысить

удобочитаемость имени переменной, как, например, line_count.

Помните, что идентификатор не может начинаться с цифры.

Например, 12х — недействительный идентификатор. Хорошая практика

программирования требует выбирать идентификаторы, отражающие

назначение или применение именуемых элементов.

В примерах программ, представленных в этой главе, применялись

два встроенных метода: WriteLine() и Write(). Как упоминалось выше, эти

методы являются членами класса Console, относящегося к пространству

имен System, которое определяется в библиотеке классов для среды .NET

Framework. Ранее пояснялось, что среда С# опирается на библиотеку

классов, предназначенную для среды .NET Framework, чтобы

поддерживать операции ввода-вывода, обработку строк, работу в сети и

графические пользовательские интерфейсы. Поэтому, вообще говоря, С#

представляет собой определенное сочетание самого языка С# и

стандартных классов .NET.

В основу языка С# положены типы значений, перечисленных ниже.

Все они называются простыми типами, поскольку состоят из

единственного значения. Они составляют основу системы типов С#,

предоставляя простейшие, низкоуровневые элементы данных, которыми

можно оперировать в программе. В рассматриваемых ниже заданиях

наиболее часто будут использоваться величины целого (int) и

вещественного (Double) типов (выделены в таблице 1, 2).

Page 43: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

13

Типы значений в С#. Таблица целых типов

Таблица № 1

Тип Диапазон Размер

sbyte От -128 до 127 8-разрядное знаковое целое

число

byte От 0 до 255 8-разрядное целое число без

знака

char от U+0000 до U+ffff 16-разрядный символ

Юникода

short От -32768 до 32767 16-разрядное знаковое целое

число

ushort От 0 до 65535 16-разрядное целое число без

знака

int От -2 147 483 648 до 2 147 483 647 32-разрядное знаковое целое

число

uint От 0 до 4 294 967 295 32-разрядное целое число без

знака

long От -9 223 372 036 854 775 808 до

9 223 372 036 854 775 807

64-разрядное целое число со

знаком

ulong От 0 до 18 446 744 073 709 551 615 64-разрядное целое число без

знака

Таблица типов с плавающей запятой

Таблица № 2

Тип Диапазон Размер

float От ±1,5e−45 до ±3,4e38 7 знаков

double От ±5,0e−324 до ±1,7e308 15-16 знаков

Page 44: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

14

2. УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ

ЗАДАНИЙ ПИСЬМЕННО И НА КОМПЬЮТЕРЕ

Задания в темах подразделяются на подготовительные и основные.

Подготовительные задания предназначены для предварительного

знакомства с изучаемой темой, для подробного разбора.

Основные задания предназначены для полного освоения темы и

самостоятельного выполнения, результаты их прогона на компьютере

заносятся в таблицу результатов.

В процессе работы на компьютере следует стремиться к тому, чтобы

уметь выполнить любое из предлагаемых основных заданий без

использования записей и посторонней помощи, без дополнительной

подготовки перед проверкой за нормативное время.

Нормативное время выполнения одного задания для основных

заданий составляет 10 минут.

Для занятий необходимо завести отдельную тетрадь (можно тонкую,

школьную). Тетрадь должна быть подписана. Во время работы на

компьютере в тетради (но не на отдельном листке) заполняется таблица

результатов (самопроверки). В заголовке таблицы – название темы,

например: Тема № 2. Простейшие расчеты.

Общий вид таблицы результатов:

Тема № 2. Простейшие расчеты

№ задания Время выполнения

1

2

3

10

Последовательность работы над отдельным заданием:

1. Выполнить задание, при необходимости пользуясь ответами в

последней главе методического пособия.

2. Убедиться, что все действия можете выполнить самостоятельно,

без посторонней помощи, результат расчета совпадает с ответом, иначе

найти ошибки или повторно выполнить задание.

3. Выполнить задание полностью самостоятельно, получив

правильный результат расчета, фиксируя время выполнения задания.

4. Довести время выполнения до 10 минут (т.е. не более 10 минут),

записать в рабочую тетрадь в таблицу результатов.

Page 45: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

15

Тема сдается на зачет после того, как таблица результатов

полностью заполнена и время выполнения каждого отдельного задания в

ней не превышает нормативного времени. Перед сдачей темы студенту

рекомендуется для контроля выполнить на время повторно несколько (не

менее пяти) заданий выборочно, чтобы проверить, не забылись ли

отдельные операции.

Выполнение работы на зачет производится только при наличии

таблицы результатов и предполагает:

1. получение индивидуального задания;

2. набор программы на клавиатуре без использования записей и

посторонней помощи в специализированной среде программирования;

3. полное устранение ошибок в программе, прогон и получение

правильного результата расчета;

4. время выполнения задания от начала набора программы до

получения правильного результата расчета не должно превышать

нормативное время.

На зачете темы преподаватель проверяет правильность заполнения

таблицы результатов, садится рядом со студентом, сдающим тему,

указывает задание, которое необходимо выполнить, засекает время

выполнения, смотрит за правильностью выполнения задания и

правильностью полученного результата. Если все действия студентом

были выполнены правильно и самостоятельно, время выполнения задания

не превышало нормативного, тема зачтена.

Page 46: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

16

3. АЛГОРИТМЫ И ПРОГРАММЫ ЛИНЕЙНОЙ СТРУКТУРЫ

3.1 Линейная алгоритмическая конструкция

Линейный алгоритм представляет собой последовательность

действий (шагов), в которой каждое действие выполняется ровно один раз.

Пример алгоритма линейной структуры.

На рис. 1 изображен алгоритм сложения двух чисел в виде блок -

схемы.

Словесное описание алгоритма:

1. Начало.

2. Ввод значений чисел a и b с клавиатуры.

3. Расчет суммы чисел S = a + b . Значения чисел a и b складываются,

результат расчета присваивается переменной S.

4. Вывод результата расчета S на экран.

5. Конец.

Рис. 1. Пример алгоритма линейной структуры.

Page 47: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

17

3.2 Линейная структура. Тема № 1. Вывод информации на экран

Программа, в качестве устройства ввода использующая клавиатуру, а

в качестве устройства вывода – экран, называется консольным

приложением, а сама совокупность клавиатуры и экрана – консолью. При

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

консольное окно (темного цвета), через которое и происходит обмен

данными между пользователем и компьютером.

Первая программа на C#.

Создадим новый (пустой) проект С#, выбрав команду Файл –

Создать проект … .

Появится диалоговое окно Создать проект.

Page 48: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

18

Выбираем в левой части окна Установленные – Шаблоны – Visual C#,

в средней части окна – Консольное приложение Visual C#. Создаваемая

программа – учебная, и сохранять ее не планируем. По этой причине в

правой нижней части окна можно снять поле-флажок Создать каталог

для решения, затем щелкаем ОК.

В появившемся окне между двух фигурных скобок набираем текст

программы:

static void Main(string[] args)

{

Console.WriteLine("Здравствуй, мир!!! ");

/*вывод на экран строки, находящейся в кавычках */

Console.ReadKey(); // задержка экрана для просмотра результата

}

На экране компьютера это будет выглядеть следующим образом:

Page 49: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

19

Каждая строка программы (кроме комментариев) заканчивается

символом точка с запятой (;) .

Для того, чтобы отправить программу на выполнение, щелкаем на

кнопке Запуск в верхней части окна и немного подождем. Результат

работы программы в консольном окне:

Для продолжения работы в Visual C# следует нажать любую клавишу.

Комментарии.

Существуют два вида комментариев: однострочные и многострочные.

Комментарии служат для пояснений к программе.

Однострочный комментарий начинается с двух символов прямой

косой черты (//) и заканчивается символом перехода на новую строку

(нажатием клавиши Enter).

Пример. // задержка экрана для просмотра результата

Многострочный комментарий заключается между символами –

скобками /* */ и может занимать часть строки, целую строку или

несколько строк.

Пример. /*вывод на экран строки, находящейся в кавычках */

Операторы Console.Write() и Console.WriteLine().

Оператор Console.Write() выводит информацию, заключенную в

кавычки, на экран и оставляет курсор вывода на старой строке, а

Console.WriteLine() - переводит курсор вывода на следующую строку.

Пример.

static void Main(string[] args)

{

Console.Write("Это строка. ");

Console.WriteLine("Это еще старая строка.");

Console.Write("Это уже новая строка.");

Console.ReadKey(); // задержка экрана для просмотра результата

}

Результат работы программы:

Page 50: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

20

3.2.1 Подготовительные задания

В указанных ниже заданиях сначала на экран выводятся строки и

столбцы из различных символов, затем различные фигуры. В качестве

выводимого на экран символа можно пользоваться любыми символами,

однако для лучшей читабельности выводимой фигуры рекомендуется

использовать символ «*» или «#».

Ответы на задания раздела Строки и столбцы из символов смотрите

на странице 226.

Строки и столбцы из символов.

1. Вывести на экран горизонтальную строку из 8 символов.

2. Вывести на экран горизонтальную строку из 10 символов,

отодвинутую от левого края экрана на 7 позиций.

3. Вывести на экран вертикальную строку из 5 символов.

4. Вывести на экран вертикальную строку из 8 символов,

отодвинутую от левого края экрана на 5 позиций.

5. Вывести на экран 5 горизонтальных строк, каждая из 8 символов.

6. Вывести на экран горизонтальную строку из 11 символов, затем 5

пустых строк, затем еще одну горизонтальную строку из 9 символов.

7. Вывести на экран 4 горизонтальных строки, каждая из которых

состоит из 7 символов, отделенных друг от друга пустыми строками.

8. Вывести на экран 3 вертикальных строки, каждая из которых

состоит из 5 символов, отстоящих друг от друга на 3 позиции.

9. Вывести на экран наклонную линию (/) из 9 символов.

10. Вывести на экран наклонную линию (\) из 8 символов.

Простейшие геометрические фигуры из символов.

Пример.

static void Main(string[] args)

{

Page 51: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

21

Console.WriteLine(); // сначала 2 пустые строки

Console.WriteLine();

// 2 пробела, затем 18-2=16 символов «#»

Console.WriteLine (" ################");

// в строке 7 пробелов, символ «#»,затем 5 пробелов, символ «#»,

Console.WriteLine (" # #");// всего 15-3=12 одинаковых строк

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.WriteLine (" # #");

Console.ReadKey(); // задержка экрана для просмотра результата

}

Результат работы программы:

Создаем проект фигуры из символов и пробелов, затем выводим его

на экран. Подготовленный проект для удобства и наглядности можно

нарисовать на листе клетчатой бумаги. Ввиду несложности заданий

ответы на них не приводятся.

1. Вывести на экран прямой угол вида ┌ ┐ └ ┘, образованный

сочетанием горизонтальной и вертикальной линии.

Page 52: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

22

2. Вывести на экран фигуры вида ├ ┤ ┬ ┴ , образованные

сочетанием горизонтальной и вертикальной линии.

Примеры оформления фигур.

3. Вывести на экран угол вида <,>,^,, образованный сочетанием двух

наклонных линий.

Примеры оформления фигур.

4. Вывести на экран 2-3 разновидности острых или тупых углов,

образованных сочетанием наклонных, горизонтальных и вертикальных

линий.

Примеры оформления фигур.

5. Вывести на экран несколько фигур вида: ┬ ╒ ╓ ╔ ╕ ╖ ╗╘ ╙ ╚ ╛ ╜

╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ .

Примеры оформления фигур.

Page 53: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

23

6. Вывести на экран прямоугольник вида ■ █ ▌, заполненный

символами.

7. Вывести на экран прямоугольник вида □, обрамленный символами

и пустой внутри.

Пример оформления фигуры.

8. Вывести на экран прямоугольный треугольник:

а) заполненный символами,

б) обрамленный символами и пустой внутри.

Примеры оформления фигур.

9. Вывести на экран треугольник вида ▲ ► ▼ ◄ :

а) заполненный символами,

б) обрамленный символами и пустой внутри.

Примеры оформления фигур.

Page 54: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

24

10. Вывести на экран параллелограмм, трапецию или ромб, пустой

или заполненный символами.

Примеры оформления фигур.

Page 55: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

25

3.2.2 Основные задания

Специальные символы, буквы и цифры.

Создаем проект фигуры из символов и пробелов, затем выводим его

на экран. Подготовленный проект для удобства и наглядности можно

нарисовать на листе клетчатой бумаги. Ввиду несложности заданий ответы

на них не приводятся.

Пример.

static void Main(string[] args)

{

Console.WriteLine(); // сначала 2 пустые строки

Console.WriteLine();

Console.WriteLine (" ##### "); // 5 пробелов, 5 символов #

Console.WriteLine (" # #"); // 4 пробела, #, 5 пробелов, #

Console.WriteLine (" # #"); // 4 пробела, #, 5 пробелов, #

Console.WriteLine (" # #"); // 4 пробела, #, 5 пробелов, #

Console.WriteLine (" #"); // 10 пробелов, #

Console.WriteLine (" #"); // 9 пробелов, #

Console.WriteLine (" #"); // 8 пробелов, #

Console.WriteLine (" #"); // 7 пробелов, #

Console.WriteLine (" #"); // 6 пробелов, #

Console.WriteLine (" #"); // 5 пробелов, #

Console.WriteLine (" #"); // 4 пробела, #

Console.WriteLine (" #"); // 4 пробела, #

Console.WriteLine (" #######"); // 4 пробела, 7 символов #

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 56: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

26

Результат работы программы:

1. Вывести на экран один из специальных символов вида

.

Примеры оформления фигур.

2. Вывести на экран одну из букв русского (А-Я), латинского (A-Z)

алфавита или цифру (0-9).

Примеры оформления фигур.

Page 57: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

27

3.3 Линейная структура. Тема № 2. Простейшие расчеты

Объявление переменных.

Перед первым использованием в программе любой переменной ее

необходимо объявить: присвоить переменной определенное имя и дать

команду компьютеру выделить под предполагаемое значение данной

переменной необходимое количество ячеек (байтов) памяти. В

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

величины целого (int) и вещественного (Double) типов (см. табл. 1, 2 на

стр. 13).

Пример.

int b;

Группе ячеек памяти присвоено имя b. Для целого типа int группа

ячеек состоит из 4 байт. Более коротко: здесь объявлена переменная b

целого типа.

Пример.

Double x, y, z;

Здесь объявлены переменные x, y, z вещественного типа с двойной

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

переменных x, y, z отводится не 4 байта, как под обычную переменную

вещественного типа (float), а в два раза больше – 8 байт.

Оператор присваивания.

Чтобы поместить данные в ячейки памяти, следует выполнить

определенные действия. Эти действия получили название операции

присваивания.

Пример.

int bob;

bob = 34;

Группе ячеек памяти присвоено имя bob. Переменная bob целого

типа int. В ячейки памяти, отведенные под эту переменную, поместили

целое значение 34. Более коротко: объявлена переменная bob целого типа,

ей присвоено значение 34.

Вещественные значения (с десятичной точкой) переменным целого

типа без специального преобразования с отбрасыванием дробной части

присваивать нельзя.

Целые значения переменным вещественного типа присваивать

можно, они будут преобразованы в вещественные значения.

Оператор Console.ReadLine().

Для ввода с клавиатуры строки символов служит оператор

Console.ReadLine(). Он означает буквально следующее: прочитать (Read) с

Page 58: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

28

клавиатуры (Console) строку (Line) символов. В процессе выполнения

этого оператора работа программы приостанавливается, и компьютер ждет

набора строки символов. Вводимая с клавиатуры строка символов

высвечивается на экране в месте расположения текстового курсора.

Заканчивать набор строки следует нажатием клавиши Enter. После этого

программа продолжит свою работу.

Если требуется ввести значение переменной величины целого или

вещественного типа, следует преобразовать (конвертировать) вводимую

строку символов к определенному типу.

Пример.

a = Convert.ToInt32(Console.ReadLine());

Вводимая с клавиатуры строка символов будет преобразована

(конвертирована, Convert) в величину целого типа (int), эта величина

будет присвоена переменной a. Переменная a должна быть

предварительно объявлена как переменная целого типа (int).

Пример.

d = Convert.ToDouble(Console.ReadLine());

Вводимая с клавиатуры строка символов будет преобразована

(конвертирована, Convert) в величину вещественного типа (Double), эта

величина будет присвоена переменной d. Переменная d должна быть

предварительно объявлена как переменная целого типа (Double).

Пример.

Дана сторона квадрата а. Найти его периметр P = 4*a .

Вариант № 1

(развернутый, с комментариями, для разбора программы)

static void Main(string[] args)

{

// объявляем переменные P, a как вещественные

Double P, a;

/* вывести (записать) (Write) строку символов, находящуюся в

кавычках "Длина стороны квадрата а =", на экран (Console) */

Console.Write("Длина стороны квадрата а = ");

/* принять (прочитать) (ReadLine) строку с клавиатуры (Console) и

преобразовать (Convert) в вещественное число (Double) */

a = Convert.ToDouble(Console.ReadLine());

// дробные числа вводятся с запятой

P = 4 * a;

/* вывести (записать) (Write) строку символов, находящуюся в

кавычках "Периметр квадрата P =" с присоединением значения P, на

экран (Console), с переводом курсора на новую строку (Line) */

Page 59: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

29

Console.WriteLine("Периметр квадрата P = " + P);

// вывод результата на экран

Console.ReadKey(); // задержка экрана для просмотра результата

}

Запускаем программу на выполнение. При выполнении строки a =

Convert.ToDouble(Console.ReadLine()); работа программы

приостанавливается, компьютер ждет ввода данных. Текстовый курсор

находится после знака =.

Вводим значение, например, 3,7 и нажимаем клавишу Enter. Работа

программы продолжится, на экране появится:

Обратите внимание, что значения вещественных величин вводятся с

клавиатуры с запятой (не 3.7, а именно 3,7).

Вариант № 2

(сокращенный, рекомендуется для печати на компьютере)

static void Main(string[] args)

{

Double P, a;

Console.Write("а = ");

a = Convert.ToDouble(Console.ReadLine());

P = 4 * a;

Console.WriteLine("P = " + P);

Console.ReadKey();

}

Результат прогона программы:

Page 60: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

30

3.3.1 Подготовительные задания

Все входные и выходные данные в заданиях этой темы являются

вещественными числами.

1. Найти длину окружности L и площадь круга S заданного радиуса

R: L = 2**R, S=*R2.

static void Main(string[] args)

{

Double R, L, S;

Console.Write("R = ");

R = Convert.ToDouble(Console.ReadLine());

L = 2 * Math.PI * R;

S = Math.PI * R * R;

Console.WriteLine("L = " + L);

Console.WriteLine("S = " + S);

Console.ReadKey();

}

2. Дана длина L окружности. Найти ее радиус R и площадь S круга,

ограниченного этой окружностью, учитывая, что .

static void Main(string[] args)

{

Double L, R, S;

Console.Write("Введите длину окружности L = ");

L = Convert.ToDouble(Console.ReadLine());

R = L / (2 * Math.PI);

S = Math.PI * R * R;

Console.WriteLine("радиус окружности R = " + R);

Console.WriteLine("площадь круга S = " + S);

Console.ReadKey();

}

Page 61: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

31

3. Найти расстояние между двумя точками с заданными

координатами x1 и x2 на числовой оси: |x1 - x2|.

static void Main(string[] args)

{

Double x1, x2, L;

Console.Write("Введите координату x1 = ");

x1 = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите координату x2 = ");

x2 = Convert.ToDouble(Console.ReadLine());

L = Math.Abs (x1 – x2);

Console.WriteLine("расстояние между точками L = " + L);

Console.ReadKey();

}

4. Найти расстояние между двумя точками с заданными

координатами (x1, y1), (x2 , y2) на плоскости. Расстояние вычисляется по

формуле

static void Main(string[] args)

{

Double x1, x2, y1, y2, L;

Console.Write("x1 = "); x1 = Convert.ToDouble(Console.ReadLine());

Console.Write("y1 = "); y1 = Convert.ToDouble(Console.ReadLine());

Console.Write("x2 = "); x2 = Convert.ToDouble(Console.ReadLine());

Console.Write("y2 = "); y2 = Convert.ToDouble(Console.ReadLine());

L = Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));

Console.WriteLine("расстояние между точками L = " + L);

Console.ReadKey();

}

Page 62: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

32

5. Поменять местами содержимое переменных A и B и вывести новые

значения A и B.

static void Main(string[] args)

{

Double A, B, C;

Console.Write("A = "); A = Convert.ToDouble(Console.ReadLine());

Console.Write("B = "); B = Convert.ToDouble(Console.ReadLine());

/* новая переменная С нужна для того, чтобы не испортить

значения переменных A и B при перестановке */

C = A; A = B; B = C;

Console.WriteLine("Новое значение A = " + A);

Console.WriteLine("Новое значение B = " + B);

Console.ReadKey();

}

6. Даны переменные A, B, C. Изменить их значения, переместив

содержимое A в C, C – в B, B – в A, и вывести новые значения переменных

A, B, C.

static void Main(string[] args)

{

Double A, B, C, D;

Console.Write("A = "); A = Convert.ToDouble(Console.ReadLine());

Console.Write("B = "); B = Convert.ToDouble(Console.ReadLine());

Console.Write("C = "); C = Convert.ToDouble(Console.ReadLine());

D = A; // новая переменная D нужна для сохранения значения A

A = B;

B = C;

C = D; // здесь старое значение A (хранилось в D) присваивается C

Console.WriteLine("Новое значение A = " + A);

Console.WriteLine("Новое значение B = " + B);

Console.WriteLine("Новое значение C = " + C);

Console.ReadKey();

}

Page 63: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

33

3.3.2 Основные задания.

Все входные и выходные данные в заданиях этой темы являются

вещественными числами.

1. Даны два ненулевых числа. Найти сумму, разность, произведение

и частное их квадратов.

2. Даны два ненулевых числа. Найти сумму, разность, произведение

и частное их модулей.

3. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2).

Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний

радиус которого равен R1, а внутренний радиус равен R2:

4. Дана площадь круга S. Найти его диаметр D и длину L окружности.

5. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC

и BC и их сумму.

6. Даны три точки A, B, C на числовой оси. Точка С расположена

между точками A и B. Найти произведение длин отрезков AC и BC.

7. Даны координаты двух противоположных вершин прямоугольника:

(x1, y1) и (x2, y2). Стороны прямоугольника параллельны осям координат.

Найти периметр и площадь данного прямоугольника.

8. Даны координаты трех вершин треугольника: (x1, y1), (x2 , y2), (x3 ,

y3). Найти длины сторон треугольника a, b, c.

9. Даны длины сторон треугольника a, b, c. Найти его периметр и

площадь. Для нахождения площади использовать формулу Герона

где p = (a + b + c) / 2 – полупериметр.

10. Даны переменные A, B, C. Изменить их значения, переместив

содержимое A в B, B – в C, C – в A, и вывести новые значения переменных

A, B, C.

Ответы на основные задания темы: Линейная структура. Тема № 2.

Простейшие расчеты смотрите на странице 230.

Page 64: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

34

3.4 Правила расчета арифметического выражения

3.4.1 Математические функции С#

Таблица № 3

Название

функции

Математическая

запись

Запись в С# Примечания

синус sinx Math.Sin(x) x – в радианах

косинус cosx Math.Cos(x) x – в радианах

тангенс tgx Math.Tan(x) x – в радианах

арктангенс arctgx Math.Atan(x) значение в

пределах от -/2

до /2

натуральный

логарифм

lnx Math.Log(x) х>0 логарифм

по основанию е

корень x Math.Sqrt (x) х0

экспонента eх Math.Exp(x) число е в

степени х

модуль х Math.Abs(x) абсолютное

значение х

x в степени n xn Math.Pow(x,n)

число пи Math.Pi

Вместо х при расчетах может быть подставлено любое

арифметическое выражение. После записи функции всегда идет скобка, за

которой следует запись ее аргумента. Например, нельзя записывать

exp^x, а правильно Math.Exp(x). Функция котангенс вычисляется через

тангенс: ctg(x)=1/tg(x).

3.4.2. Правила старшинства

В процессе вычислений существует определенный порядок

выполнения операций. Он необходим для получения единственного и

правильного результата при расчете. В первую очередь вычисляются части

выражения, заключенного в скобки; затем вычисляются функции;

выполняются умножение и деление(*,/); последними выполняются

сложение и вычитание(+,-). Если два соседних действия равны по

старшинству, они выполняются слева направо. Коротко это можно

записать следующим образом :1)() 2)f 3)*,/ 4)+,-

Page 65: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

35

3.4.3 Пример расчета арифметического выражения

Пусть требуется вычислить значение y при a=10; b=5,3;

c=3,8; d=1,5.

)1(5))cos()sin(ln(

)( 22

ba

datgey

dc

ba

Ответ: y = 2,202862

Общее правило расчета арифметического выражения состоит в

следующем. Если формула небольшая, можно записать ее код в одну

строчку. Если формула достаточно громоздкая, ее разбивают на

небольшие логические части, каждая часть формулы программируется

отдельно. В последней строке расчета все части сводятся воедино и

получают результат. Покажем это на примере.

Формулу (1) разбиваем на три части. Переменной x1 присваиваем

значение первой части формулы Math.Exp((Math.Sqrt(a)+b)/(c+d)),

переменной x2 - второй части формулы a*a+ d*d, переменной x3 третьей

части формулы Math.Log(a)+ Math.Cos(b). Затем соединяем все вместе и

переменной y присваиваем значение выражения (x1- Math.Tan(x2))/(

Math.Sin(x3)+5).

static void Main(string[] args)

{

double a, b, c, d, x1, x2, x3, y;

a = 10; b = 5.3; c = 3.8; d = 1.5;

x1 = Math.Exp((Math.Sqrt(a) + b) / (c + d));

x2 = a * a + d * d;

x3 = Math.Log(a) + Math.Cos(b);

y = (x1 - Math.Tan(x2)) / (Math.Sin(x3) + 5);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Обратите внимание: вещественные значения в программе

присваиваются переменным с десятичной точкой (a = 10; b = 5.3; c = 3.8;

d = 1.5;).

Результат работы программы:

Page 66: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

36

3.5 Линейная структура. Тема № 3. Расчет арифметического

выражения

3.5.1 Подготовительные задания

CBAB

BC

BAtgy 22*8

sin

*

274616,322:Ответ 3.C 1,B 8,A 1.

Вариант № 1 (развернутый)

static void Main(string[] args)

{

Double a, b, c, x1, x2, x3, y;

a = 8; b = 1; c = 3;

x1 = Math.Sqrt(a*b)/ Math.Sin(c+b);

x2 = 8 * b;

x3 = Math.Pow(a*a+b*b,c);

y = Math.Tan(x1) - x2 + x3;

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Вариант № 2 (короткий)

static void Main(string[] args)

{

Double a = 8, b = 1, c = 3, y;

y = Math.Tan(Math.Sqrt(a * b) / Math.Sin(c + b)) - 8 * b +

Math.Pow(a * a + b * b, c);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Page 67: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

37

CBCCBA

A

Cy

ln*4

951,36994415:Ответ 3.C 1,B 8,A

2

2.

static void Main(string[] args)

{

Double a = 8, b = 1, c = 3, y;

y = c / a * Math.Sqrt(a * a / 4 - b * c + Math.Sqrt(c) - Math.Log(b +

c));

Console.WriteLine("y = " + y);

Console.ReadKey();

}

5

sincosln

52,44819613:Ответ 4.C 5,B 3,A 3.

C

B

B

AAy CB

static void Main(string[] args)

{

Double a = 3, b = 5, c = 4, x1, x2, y;

x1 = Math.Log(Math.Pow(a, b) + Math.Exp(c));

x2 = Math.Cos(a / b) - Math.Sin(b / (c + 5));

y = Math.Sqrt(x1 + x2);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

CBA

CCBAy

CBA

ln

3 5*

1140,515934:Ответ 4.C 5,B 3,A 4.

static void Main(string[] args)

{

Double a = 3, b = 5, c = 4, x1, x2, y;

x1 = a * a * a * b - Math.Pow(c + 5, a - b);

x2 = Math.Pow(c, Math.Log(c)) / (a + Math.Sqrt(b) - c);

y = x1 + x2;

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Page 68: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

38

BA

C

B

ABAy

CB

*3

6sin*

62,99653715:Ответ 6.C 1,B 2,A

2

5.

static void Main(string[] args)

{

Double a = 2, b = 1, c = 6, y;

y = Math.Pow(a + b, b - c) * Math.Sin((a - 6) / (b * b + 3)) + c / (a * b);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

BAB

BC

BAAy **sin9ln*8

84-0,7824234:Ответ 6.C 1,B 2,A 6.

static void Main(string[] args)

{

Double a = 2, b = 1, c = 6, x1, y;

x1 = Math.Log(9 + Math.Sin(a + b / Math.Sqrt(c + b)));

y = Math.Pow(8 * a, b) - x1 * Math.Exp(a * b);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

BACBBAy *3cos*sin

3-3,0289137:Ответ 0,3.C 1,B 2,A 7.

static void Main(string[] args)

{

Double a = 2, b = 1, c = 0.3, y;

y = Math.Sqrt(Math.Sin(a + b) * Math.Cos(b + c)) - Math.Sqrt(3 +

Math.Exp(a * b));

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Page 69: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

39

A

BA CB

ABy

3ln*2cos18ln

64,42423834:Ответ 0,3.C 1,B 2,A 8.

static void Main(string[] args)

{

Double a = 2, b = 1, c = 0.3, x1, x2, y;

x1 = Math.Log(18 - Math.Cos(2 * b) / Math.Exp(a + b));

x2 = Math.Pow(Math.Log(3 + a) / (b + c), a);

y = x1 + x2;

Console.WriteLine("y = " + y);

Console.ReadKey();

}

А

BA

С

AC

By

lnsin

lncos

cos

4-3,6095523:Ответ 6,5.C 1,4,B 2,2,A 9.

static void Main(string[] args)

{

Double a = 2.2, b = 1.4, c = 6.5, x1, y;

x1 = Math.Cos(c + Math.Log(a / c)) / Math.Sin(a + Math.Log(b / a));

y = Math.Cos(b + x1) - Math.PI;

Console.WriteLine("y = " + y);

Console.ReadKey();

}

BB

ABActgy

sin*1237

935,1771059:Ответ 6,5.C 1,4,B 2,2,A 10.

static void Main(string[] args)

{

Double a = 2.2, b = 1.4, c = 6.5, y;

y = Math.Sqrt(Math.Abs(-1237 + 1 / Math.Tan(a - b) * Math.Sin(a /

b)) + b);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Page 70: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

40

3.5.2 Основные задания

BA

C

CBCCBA

A

C

BABBC

BAtg

y

C

ln*4

*8sin

*

200458,374:Ответ 3.C 1,B 8,A

2

22

1.

CBA

CCBA

C

B

B

AA

yC

BA

CB

ln

3 5*

5sincosln

0.0174229:Ответ 4.C 5,B 3,A 2.

BAB

CB

BC

BAA

BA

C

B

ABA

y*

2

*sin9ln*8

*3

6sin*

5-3.8298149:Ответ 6.C 1,B 2,A 3.

A

BA

BA

CB

AB

CBBAy

3ln*2cos18ln

3cos*sin

-0.6846181:Ответ 0,3.C 1,B 2,A

*

4.

A

B

B

A

BAtgA

BA

CBACBy

C

cossin

**

8.1913213:Ответ 4.C 3,B 2,A 5.

BB

ABActg

А

BA

С

AC

B

Ay

sin*1237

lnsin

lncos

cos

2.09738916:Ответ 6,5.C 1,4,B 2,2,A 6.

C

AC

C

BABBCC

ACtg

CBACBAA

y

sin

22

*cos**cos*sin

cossin**cos*cos

4558184.479026:Ответ 3.C 5,B 4,A 7.

ACAAC

A

CBAB

A

CC

BA

y

sin*25

cos*sin

lnln

sin

*

633-1.2678854:Ответ 1.C 2,B 7,A

22

8.

B

CB

B

AA

CBABB

CB

CBBA

BA

CABA

y

*3sin

*2sin

*

*

cos

*sin

-0.6183869:Ответ 2.C 2,B 1,A 9.

CA

A

C

BACBA

BBA

BABABAy

2

5cos

3

22

sinln3*

*

cos***3

1.07548386:Ответ 6.C 5,B 2,A 10.

BA

BAA

CB

B

ABA

CAC

CBAtg

y

BC

CAtg

sin*sinln

3sin

cos3

sin**

0.27393990:Ответ 1.C 2,B 3,A 11.

3cosln

*

3*

*lnsin

680.19420363:Ответ 3.C 5,B 1,A

24

12.

BABA

BCBActg

AC

BA

y

AC

B

C

BA

Ответы на основные задания темы: Линейная структура. Тема № 3.

Расчет арифметического выражения смотрите на странице 236.

Page 71: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

41

4. АЛГОРИТМЫ И ПРОГРАММЫ РАЗВЕТВЛЯЮЩЕЙСЯ

СТРУКТУРЫ

4.1 Разветвляющаяся алгоритмическая конструкция

Разветвляющейся (или ветвящейся) называется алгоритмическая

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

зависимости от значения входных данных. При каждом конкретном

наборе входных данных разветвляющийся алгоритм сводится к

линейному. Различают неполное (если – то) и полное (если – то – иначе)

ветвления. Полное ветвление позволяет организовать две ветви в

алгоритме (то или иначе), каждая из которых ведет к общей точке их

слияния, так что выполнение алгоритма продолжается независимо от того,

какой путь был выбран (рис. 2).

Рис. 2. Полное ветвление.

Неполное ветвление предполагает наличие некоторых действий

алгоритма только на одной ветви (то), вторая ветвь отсутствует, т.е. для

одного из результатов проверки никаких действий выполнять не нужно,

управление сразу переходит к точке слияния (рис. 3)

Page 72: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

42

Рис. 3. Неполное ветвление.

Пример алгоритма разветвляющейся структуры.

На рис. 4 изображен алгоритм вывода значения наибольшего из двух

чисел в виде блок - схемы.

Словесное описание алгоритма:

1. Начало.

2. Ввод значений чисел a и b с клавиатуры.

3. ЕСЛИ a > b, ТО «выводим а», ИНАЧЕ «выводим b».

4. Конец.

Рис. 4. Пример алгоритма разветвляющейся структуры.

Page 73: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

43

В данном примере реализовано полное ветвление. ЕСЛИ значения

входных данных таковы, что a > b, ТО выполняется линейный алгоритм:

1. Ввод двух чисел a, b.

2. Вывод a.

ИНАЧЕ, когда a ≤ b, выполняется линейный алгоритм:

1. Ввод двух чисел a, b.

2. Вывод b.

Вывод: алгоритм является разветвляющимся и состоит из двух ветвей.

4.2 Общие сведения об условном операторе if в языке

программирования С#

Выполнение программы происходит последовательно от одного

оператора к другому, т.е. по цепочке сверху вниз. Этот порядок

выполнения программы можно изменить с помощью различных

управляющих операторов, поддерживаемых в С#.

4.2.1 Условный оператор if

С помощью условного оператора if в С# можно организовать

выборочное выполнение части программы. Оператор if действует в С#

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

программирования.

Приведем простейшую форму этого оператора.

if (условие) оператор;

Здесь условие представляет собой булево, т.е. логическое,

выражение, принимающее одно из двух значений: "истина" или "ложь".

Если условие истинно, то оператор выполняется. А если условие ложно, то

выполнение программы происходит, минуя оператор.

Пример применения условного оператора.

if (10 < 11) Console.WriteLine ("10 меньше 11");

В данном примере условное выражение принимает истинное

значение, поскольку 10 меньше 11, и поэтому метод WriteLine ()

выполняется.

Рассмотрим другой пример.

If (10 < 9) Console.WriteLine ("не подлежит выводу");

Page 74: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

44

В данном примере 10 не меньше 9. Следовательно, вызов метода

WriteLine () не произойдет.

Форма оператора if с использованием служебного слова else.

if (условие) оператор;

else оператор;

Если условие истинно, то оператор выполняется, после этого

происходит обход строки со служебным словом else. А если условие

ложно, то выполняется оператор, стоящий после else.

В С# определен полный набор операторов отношения, которые

можно использовать в условных выражениях. Перечислим эти операторы

и их обозначения: < меньше, <= меньше или равно, > больше, >=

больше или равно, == равно (здесь два знака равно подряд), != не

равно.

Приведем пример программы, демонстрирующей применение

условного оператора if. Укажем только часть программы, содержащей

метод Main.

// Продемонстрировать применение условного оператора if

static void Main(string[] args)

{

int a = 2, b = 3, c;

if (a < b) Console.WriteLine("а меньше b");

// He подлежит выводу.

if (a == b) Console.WriteLine("этого никто не увидит");

Console.WriteLine();

c=a-b; // с содержит -1

Console.WriteLine("с содержит -1");

if (с >= 0) Console.WriteLine("значение с неотрицательно");

if (с < 0) Console.WriteLine("значение с отрицательно");

Console.WriteLine();

с = b - а; // теперь с содержит 1

Console.WriteLine("с содержит 1");

if (с >= 0) Console.WriteLine("значение с неотрицательно");

if (с < 0) Console.WriteLine("значение с отрицательно ");

Console.ReadKey();

}

Page 75: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

45

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

4.2.2 Использование кодовых блоков

Еще одним важным элементом С# является кодовый блок, который

представляет собой группу операторов. Для его организации достаточно

расположить операторы между открывающей и закрывающей фигурными

скобками. Как только кодовый блок будет создан, он станет логическим

элементом, который можно использовать в любом месте программы, где

применяется одиночный оператор. В частности, кодовый блок может

служить адресатом операторов if и for. Рассмотрим следующий оператор

if.

if (w < h)

{

v = w * h;

w = 0;

}

Если в данном примере кода значение переменной w меньше

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

Они образуют внутри кодового блока единый логический элемент, причем

один не может выполняться без другого.

4.2.3 Укороченные логические операторы

В С# предусмотрены также специальные, укороченные, варианты

логических операторов И и ИЛИ, предназначенные для получения более

эффективного кода. Поясним это на следующих примерах логических

операций. Если первый операнд логической операции И имеет ложное

значение (false), то ее результат будет иметь ложное значение независимо

от значения второго операнда. Если же первый операнд логической

операции ИЛИ имеет истинное значение (true), то ее результат будет иметь

истинное значение независимо от значения второго операнда. Благодаря

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

нужно, экономится время и повышается эффективность кода.

Укороченная логическая операция И выполняется с помощью

оператора &&, а укороченная логическая операция ИЛИ — с помощью

Page 76: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

46

оператора | |. Этим укороченным логическим операторам соответствуют

обычные логические операторы & и |.

Рассмотрим несколько примеров.

if ((a>0) & (b>0) & (c>0)) x=3;

В этом примере будут проверяться обязательно все 3 операнда

логической операции: a>0, b>0, c>0 независимо, принимают ли значение

ложь некоторые из них или нет.

if ((a=>0) && (Math.Sqrt(a) >0)) x=Math.Log(Math.Sqrt(a));

В этом примере условие Math.Sqrt(a) >0 будет проверяться только

тогда, когда будет выполнено условие a=>0. Если условие a=>0 не будет

выполнено, то больше проверок условий не проводится, и выполняется

оператор, следующий после if.

Если в этом примере использовать не оператор &&, а оператор &, то

должны будут проверены все условия оператора if, и при отрицательном

значении переменной а проверка второго условия приведет к аварийному

завершению программы.

4.2.4 Операторы инкремента и декремента

Операторы инкремента (++) и декремента (—) обладают рядом

особых и довольно интересных свойств. Разберем основное назначение

этих операторов. Оператор инкремента увеличивает свой операнд на 1, а

оператор декремента уменьшает операнд на 1. Следовательно, оператор

х++; равнозначен оператору х = х + 1;

а оператор

х—; равносилен оператору х = х - 1;

Оба оператора инкремента и декремента можно указывать до

операнда (в префиксной форме) или же после операнда (в постфиксной

форме). Например, оператор

х = х + 1;

может быть записан в следующем виде:

++х; // префиксная форма

или же в таком виде:

х++; // постфиксная форма

В приведенном выше примере форма инкремента (префиксная или

постфиксная) особого значения не имеет. Но если оператор инкремента

Page 77: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

47

или декремента используется в длинном выражении, то отличие в форме

его записи уже имеет значение. Когда оператор инкремента или

декремента предшествует своему операнду, то результатом операции

становится значение операнда после инкремента или декремента. А когда

оператор инкремента или декремента следует после своего операнда, то

результатом операции становится значение операнда до инкремента или

декремента. Рассмотрим следующий фрагмент кода.

х = 10;

у = ++х;

В данном случае значение переменной у будет установлено равным

11, поскольку значение переменной х сначала увеличивается на 1, а затем

присваивается переменной у. Но во фрагменте кода

х = 10;

у = х++;

значение переменной у будет установлено равным 10, так как в этом

случае значение переменной х сначала присваивается переменной у, а

затем увеличивается на 1. В обоих случаях значение переменной х

оказывается равным 11. Отличие состоит лишь том, когда именно это

значение станет равным 11: до или после его присваивания переменной у.

Кроме того, в языке Си встречается и такая сокращенная форма

записи:

оператор х+=a; равнозначен оператору х = х + a;

а оператор х-=b; равносилен оператору х = х - b;

Page 78: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

48

4.3 Разветвляющаяся структура. Тема № 1. Простые задания

4.3.1 Подготовительные задания

1. Дано целое число. Если оно является положительным, то

прибавить к нему 1; в противном случае не изменять его. Вывести

полученное число на экран.

Рис. 5. Блок - схема к заданию 1.

static void Main(string[] args)

{

int a;

Console.Write ( " Введите a=" );

a = Convert.ToInt32 (Console.ReadLine());

if (a > 0 ) a = a + 1 ;

Console.WriteLine ( " Вывод a=" + a);

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 79: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

49

2. Дано целое число. Если оно является положительным, то

прибавить к нему 1; в противном случае вычесть из него 2. Вывести

полученное число на экран.

Рис. 6. Блок - схема к заданию 2.

static void Main(string[] args)

{

int a;

Console.Write ( " Введите a=" );

a=Convert.ToInt32(Console.ReadLine());

if (a > 0) a = a + 1;

else a = a - 2;

Console.WriteLine (" Вывод a=" + a);

Console.ReadKey(); // задержка экрана для просмотра результата

}

Примечание. Если в блок-схеме имеется два варианта выбора, то при

написании программы удобно использовать служебное слово else, если

вариант один или их больше двух, то else использовать не желательно.

Page 80: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

50

3. Дано целое число. Если оно является положительным, то

прибавить к нему 1; если отрицательным, то вычесть из него 2; если

нулевым, то заменить его на 10. Вывести полученное число.

Рис. 7. Блок - схема к заданию 3.

static void Main(string[] args)

{

int a;

Console.Write ( " Введите a=" );

a = Convert.ToInt32 (Console.ReadLine());

if (a > 0) a = a + 1;

if (a < 0) a = a - 2;

if (a == 0) a = 10;

Console.WriteLine (" Вывод a=" + a);

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 81: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

51

4. Даны три целых числа. Найти количество положительных чисел в

исходном наборе.

Рис. 8. Блок - схема к заданию 4.

Для подсчета количества положительных чисел введем переменную –

счетчик k. В начале программы присвоим счетчику k значение 0. При

вводе с клавиатуры чисел a, b, c нажимаем Enter после ввода очередного

числа. Проверяем каждое из введенных целых чисел a, b, c, не является

ли оно положительным. Как только встречается положительное число,

увеличиваем значение счетчика k на единицу.

Page 82: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

52

static void Main(string[] args)

{

//программа подсчета количества положительных чисел в наборе из

трех чисел

int a, b, c, k;

Console.WriteLine (" Введите 3 числа a, b, с: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

c = Convert.ToInt32 (Console.ReadLine());

k = 0; // присвоим начальное значение счетчику k

if (a > 0) k++; /* увеличиваем к на единицу ( k++ - это k=k+1 ) */

if (b > 0) k++;

if (c > 0) k++;

Console.WriteLine ( " Количество положительных чисел k = " + k);

Console.ReadKey(); // задержка экрана для просмотра результата

}

5. Даны два числа. Вывести большее из них.

static void Main(string[] args)

{

int a, b;

Console.WriteLine (" Введите числа a, b: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

if (a > b) Console.WriteLine ( " большее число a = " + a);

else Console.WriteLine (" большее число b = " + b);

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 83: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

53

6. Даны два числа. Вывести порядковый номер меньшего из них.

static void Main(string[] args)

{

int a, b;

Console.WriteLine (" Введите числа a, b: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

if (a > b) Console.WriteLine (2);

else Console.WriteLine (1);

Console.ReadKey(); // задержка экрана для просмотра результата

}

7. Даны два числа. Вывести вначале большее, а затем меньшее из

них.

static void Main(string[] args)

{

int a, b;

Console.WriteLine (" Введите числа a, b: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

if (a > b) Console.WriteLine (" a = " + a + " b = " + b);

else Console.WriteLine (" b = " + b + " a = " + a);

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 84: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

54

8. Даны две переменные вещественного типа: a, b. Перераспределить

значения данных переменных так, чтобы в a оказалось меньшее из

значений, а в b – большее. Вывести новые значения переменных a и b.

Рис. 9. Блок - схема к заданию 8.

Если переменная b меньше переменной a, то необходимо поменять

значения, переместив значение переменной a в переменную b, а

значение переменной b в a. Если записать a = b, b = a, то мы получим

в переменных a и b значение переменной b.

Пример. а=3, b=5, после a = b, b = a имеем а= b=5.

Чтобы этого не произошло, вводим дополнительную переменную с и

выполняем цепочку присваиваний c=a, a=b, b=c. Чтобы эта цепочка

выполнялась после then, оформляем ее блоком { … }

Page 85: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

55

static void Main(string[] args)

{

// перестановка значений двух переменных

Double a, b, c;

Console.WriteLine (" Введите a, b: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

if (a > b)

{

c = a ; // меняем значения a и b

a = b ; // местами при помощи

b = c ; // вспомогательной переменной c

}

Console.WriteLine ( "Новые значения a = " + a + " b = " + b);

Console.ReadKey(); // задержка экрана для просмотра результата

}

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

равны, то присвоить каждой переменной сумму этих значений, а если

равны, то присвоить переменным нулевые значения. Вывести новые

значения переменных a и b.

Рис. 10. Блок - схема к заданию 9.

В программе знак «не равно» обозначается != Группы

операторов после if и else оформляем блоками: { }. Неправильно было

бы после a = a + b ; писать b = a + b; в этом случае b = (новое

Page 86: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

56

значение a) + b = (a + b) + b = a + 2*b; правильно так, как записано в

программе: a = a + b ; b = (новое значение а) , то есть a = a + b ; b =

а .

static void Main(string[] args)

{

int a, b;

Console.WriteLine (" Введите a, b: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

if (a != b) { a = a + b ; b = a ; }

else { a = 0 ; b = 0 ; }

Console.WriteLine ( "Новые значения a = " + a + " b = " + b);

Console.ReadKey();

}

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

равны, то присвоить каждой переменной большее из этих значений, а если

равны, то присвоить переменным нулевые значения. Вывести новые

значения переменных a и b.

static void Main(string[] args)

{

int a, b;

Console.WriteLine (" Введите a, b: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

if (a == b) { a = 0 ; b = 0 ; }

if (a > b) b = a ;

if (a < b) a = b ;

Console.WriteLine ( "Новые значения a = " + a + " b = " + b);

Console.ReadKey();

}

Page 87: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

57

11. Даны три вещественных числа. Найти наименьшее из них.

Вариант № 1

static void Main(string[] args)

{

Double a, b, c, min;

// каждой объявленной переменной обязательно необходимо

присвоить значение

min = 0; // присваиваем переменной min любое значение

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

if ((a > c) && (b > c)) min = c ;

if ((a > b) && (c > b)) min = b ;

if ((b > a) && (c > a)) min = a ;

Console.WriteLine ( "наименьшее число = " + min );

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

Double a, b, c, min;

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

min = a; // присваиваем переменной min начальное значение

if (min > b) min = b ;

if (min > c) min = c ;

Console.WriteLine ( "наименьшее число = " + min );

Console.ReadKey();

}

Page 88: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

58

12. Даны три целых числа, одно из которых отлично от двух других,

равных между собой. Определить порядковый номер числа, отличного от

других.

Вариант № 1

static void Main(string[] args)

{

int a, b, c;

Console.WriteLine(" Введите a, b, c: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

c = Convert.ToInt32 (Console.ReadLine());

if ((a != b) && (a != c)) Console.WriteLine("порядковый номер числа

1");

if ((b != a) && (b != c)) Console.WriteLine("порядковый номер числа

2");

if ((c != b) && (c != a)) Console.WriteLine("порядковый номер числа

3");

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c;

Console.WriteLine(" Введите a, b, c: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

c = Convert.ToInt32 (Console.ReadLine());

if (b == c) Console.WriteLine("порядковый номер числа 1");

if (a == c) Console.WriteLine("порядковый номер числа 2");

if (a == b) Console.WriteLine("порядковый номер числа 3");

Console.ReadKey();

}

Page 89: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

59

4.3.2 Основные задания

1. Даны три целых числа. Найти количество положительных чисел и

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

2. Даны три вещественных числа. Найти среднее из них (то есть

число, расположенное между наименьшим и наибольшим).

3. Даны три вещественных числа. Вывести вначале наименьшее, а

затем наибольшее из данных чисел.

4. Даны три вещественных числа. Найти сумму двух наибольших из

них.

5. Даны три переменные вещественного типа A, B, C. Если их

значения упорядочены по возрастанию, то удвоить их; в противном случае

заменить значение каждой переменной на противоположное. Вывести

новые значения переменных A, B, C.

6. Даны три переменные вещественного типа A, B, C. Если их

значения упорядочены по возрастанию или убыванию, то удвоить их; в

противном случае заменить значение каждой переменной на

противоположное. Вывести новые значения переменных A, B, C.

7. Даны четыре целых числа, одно из которых отлично от трех

других, равных между собой. Определить порядковый номер числа,

отличного от других.

8. На числовой оси расположены три точки: А, В, С. Определить,

какая из двух последних точек (В или С) расположена ближе к А, и

вывести координаты этой точки и ее расстояние от точки А на экран.

9. Даны целочисленные координаты точки на плоскости. Если точка

совпадает с началом координат, то вывести 0. Если точка не совпадает с

началом координат, но лежит на оси ОХ или OY, то вывести

соответственно 1 или 2. Если точка не лежит на координатных осях, то

вывести 3.

10. Даны координаты точки, не лежащей на координатных осях ОХ и

OY. Определить номер координатной четверти, в которой находится

данная точка.

Ответы на основные задания темы: Разветвляющаяся структура.

Тема № 1. Простые задания смотрите на странице 243.

Page 90: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

60

4.4 Разветвляющаяся структура. Тема № 2. Стандартные задания

4.4.1 Постановка задачи

Пусть требуется вычислить значение y при заданных значениях a, b, x

по формуле

xbba

bxaxab

axaх

y

,ln||

),*cos(*

,

Составим блок-схему, в которой в сокращенном виде будут описаны

все действия по вычислению значения y. Действия должны выполняться

для всех значений x при заданных a, b (a<b). При невозможности

вычислить значение y должно выводиться сообщение «нет решения». При

составлении алгоритма может понадобиться знание области допустимых

значений (ОДЗ) следующих функций: ln(x) (x>0); x (x0); 1/x (x0).

Здесь вместо x может быть подставлено любое арифметическое

выражение.

Геометрический смысл формулы по вычислению y. Здесь a, b – точки

на оси координат x. В трех областях – x<a, a≤x≤b, b<x значение y

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

формула для вычисления y. Значение точки x может попасть только в

один из трех интервалов, и только в этом интервале (если функция y

определена для заданного x), будет вычислено значение y. Здесь важно то

обстоятельство, что функция y может быть не определена в некоторых

точках или на некоторых интервалах, и это нужно будет учитывать.

Условия x<a, a≤x≤b, b<x будем считать (и называть) главными

условиями для вычисления y. Именно они определяют, по какой из

главных ветвей пойдет вычисление и по какой из трех формул предстоит

вычислить значение y.

Проверка области допустимых значений (ОДЗ) при выполнении

алгоритма будет проводится только после того, как мы уже ушли по одной

из главных ветвей. Она нужна для того, чтобы убедиться, можно ли

вычислять y в заданном диапазоне, определена ли в этом диапазоне

функция. Проверка ОДЗ выполняется перед вычислением функции y, и

если выясняется, что функцию y по определенной причине вычислять

Page 91: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

61

нельзя, то следует выводить сообщение «нет решения», а не пытаться

аварийно вычислить y. Например, в нашем примере, после проверки

первой ветви необходимо проверить условия a0 и x + a 0, во второй

ветви проверять ничего не нужно, так как функция соs(x) определена и

вычисляется для всех значений x, для третьей ветви нужна проверка ОДЗ

для корня b0 и для логарифма b >0.

Сначала при выполнении алгоритма вводятся значения a, b, x. Затем

выполняется проверка логического выражения x<a. Если оно истинно,

действие алгоритма уходит по первой ветви и проверяется возможность

вычисления значения y. Если условие x<a ложно, проверяем вторую ветвь:

условие axb. Если оно истинно, вычисляем значение y для второй ветви

и выводим его на печать. Если условие a x b ложно, будет выполнена

последняя ветвь.

Page 92: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

62

4.4.2 Блок-схема стандартного задания разветвляющейся структуры

Рис. 11. Блок – схема стандартного задания.

Page 93: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

63

4.4.3 Пример программы стандартного задания разветвляющейся

структуры

Пусть требуется вычислить несколько значений Y при заданных

значениях А, В, Х.

XBBLnA

BXAXACOSB

AXAX

Y

,||

),*(*

,

Программа должна работать для всех значений x при заданных a, b

(a<b). При невозможности вычислить значение y должно выводиться

сообщение «нет решения». При составлении программы может

понадобиться знание области допустимых значений (ОДЗ) следующих

функций: ln(x) (x>0); x (x0); 1/x (x0). Здесь вместо x может быть

подставлено любое арифметическое выражение.

static void Main(string[] args)

{

Double a, b, x;

Console.WriteLine(" Введите 3 числа a, b, x: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if ((x < a) && (a >= 0) && (x + Math.Sqrt(a) >= 0))

{

Console.WriteLine(" y=" + (Math.Sqrt(x + Math.Sqrt(a))));

Console.ReadKey(); return;

}

if ((a <= x) && (x <= b))

{

Console.WriteLine(" y=" + (b * Math.Cos(x * a)));

Console.ReadKey(); return;

}

if ((x > b) && (b > 0))

{

Console.WriteLine(" y=" + (Math.Abs(a) + Math.Log(Math.Sqrt(b))));

Console.ReadKey(); return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Page 94: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

64

4.4.4 Подготовительные задания

Пусть требуется вычислить несколько значений y при заданных

значениях x, a. Два значения x нужны для проверки двух ветвей

алгоритма. Программа должна работать для всех значений x при заданном

a. При невозможности вычислить значение y должно выводиться

сообщение «нет решения». При составлении программы может

понадобиться знание области допустимых значений (ОДЗ) следующих

функций: ln(x) (x>0); x (x0); 1/x (x0). Здесь вместо х может быть

подставлено любое арифметическое выражение.

AXXA

AXAX

,11

,sin

0 2,5;- X 1,3;А 1.

static void Main(string[] args)

{

Double a, x;

Console.WriteLine(" Введите числа a, x: ");

a = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if (x < a)

{

Console.WriteLine(" y=" + (Math.Sin(x - a)));

Console.ReadKey();

return;

}

if ((a <= x) && (x != 0) && (a != 0))

{

Console.WriteLine(" y=" + (1/a + 1/x));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=-1,3; x=-2,5; y=-0,932039085967226

2) a=-1,2; x=0; нет решения

Page 95: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

65

AXXA

AXXA

,cos

,1

1,2 0,1; X 0,5;А .2

static void Main(string[] args)

{

Double a, x;

Console.WriteLine(" Введите числа a, x: ");

a = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if ((x < a) && (a - x != 0))

{

Console.WriteLine(" y=" + (1 / (a - x)));

Console.ReadKey();

return;

}

if (a <= x)

{

Console.WriteLine(" y=" + (Math.Cos(a + x)));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=0,5; x=0,1; y=2,5

2) a=0,5; x=1,2; y=-0,128844494295525

AXX

AXXA

,ln

,*

1

1,7 8,2;- X ,1;7А 3.

static void Main(string[] args)

{

Double a, x;

Page 96: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

66

Console.WriteLine(" Введите числа a, x: ");

a = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if ((x < a) && (a * x != 0))

{

Console.WriteLine(" y=" + (1 / (a * x)));

Console.ReadKey();

return;

}

if ((a <= x) && (x > 0) && (Math.Log(x) >= 0))

{

Console.WriteLine(" y=" + (Math.Sqrt(Math.Log(x))));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=-7,1; x=-8,2; y=0,0171762281003092

2) a=-7,1; x=1,7; y=0,728442345736552

AXXAarctg

AXAAX

,1

,sin

2,9- 5,7;- X 3,5;- A

23

4.

static void Main(string[] args)

{

Double a, x;

Console.WriteLine(" Введите числа a, x: ");

a = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if (x <= a)

{

Console.WriteLine(" y = " + (Math.Pow(Math.Sin(x + a - a * a),

3)));

Console.ReadKey();

return;

}

Page 97: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

67

if ((a < x) && (a >= 0) && (Math.Atan(Math.Sqrt(a) - x) != 0))

{

Console.WriteLine(" y=" + (1 / Math.Atan(Math.Sqrt(a) - x)));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=-3,5; x=-5,7; y=-0,136687011238516

2) a=-3,5; x=-2,9; y=нет решения

AXX

AXBA

,sin

1ln

,

1,9 7,7;- X 3,4;B 0,3; A

3

22

5.

static void Main(string[] args)

{

Double a, b, x;

Console.WriteLine(" Введите числа a, b, x: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if (x < a)

{

Console.WriteLine(" y = " + (Math.Abs(a*a-b*b)));

Console.ReadKey();

return;

}

if ((a <= x) && ( Math.Sin(x) > 0))

{

Console.WriteLine(" y = " +

(Math.Log(1/Math.Pow(Math.Sin(x),3))));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Page 98: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

68

Ответ: 1) a=0,3;b=3,4;x=-7,7;y=11,47

2) a=0,3;b=3,4;x=-7,7;y=0,165586628413539

AXA

AXAX

,ln

1

,

3,7 7,8;- X 0,5; A 6.

static void Main(string[] args)

{

Double a, x;

Console.WriteLine(" Введите числа a, x: ");

a = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if (x <= a)

{

Console.WriteLine(" y = " + (Math.Exp(x-a)));

Console.ReadKey();

return;

}

if ((a < x) && (a > 0) && (Math.Log(a) + Math.PI != 0))

{

Console.WriteLine(" y = " + (1/(Math.Log(a) + Math.PI)));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=0,5;x=-7,8;y=0,000248516827107952

2) a=0,5;x=3,7;y=0,408422409653478

AXAarctg

AXBAX

,1

,

0,3 9,1;- X 8,8;B 7,1;- A

2

7.

static void Main(string[] args)

{

Double a, b, x;

Page 99: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

69

Console.WriteLine(" Введите числа a, b, x: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if ((x <= a) && (x >= 0) && (a-b >= 0))

{

Console.WriteLine(" y = " + (Math.Sqrt(x) + Math.Sqrt(a-b)));

Console.ReadKey();

return;

}

if ((a < x) && (Math.Atan(a) != 0))

{

Console.WriteLine(" y = " + (1/( Math.Atan(a) *

Math.Atan(a))));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=-7,1;b=8,8;x=-9,1;y=нет решения

2) a=-7,1;b=8,8;x=0,3;y=0,488425846808248

AXB

AXXA

XB ,*

,lnln

4,4 3,1;- X ;9,5B 3,2; A

3

8.

static void Main(string[] args)

{

Double a, b, x;

Console.WriteLine(" Введите числа a, b, x: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if ((x < a) && (a + x > 0) && (Math.Log(a+x) > 0))

{

Console.WriteLine(" y = " + (Math.Log(Math.Log(a+x))));

Console.ReadKey();

return;

Page 100: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

70

}

if (a <= x)

{

Console.WriteLine(" y = " + (Math.Exp(b+x) * b*b*b));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1)a=3,2;b=5,9;x=-3,1;y=нет решения

2) a=3,2;b=5,9;x=4,4;y=6106455,52738799

AXBAarctg

AXX

Y,

)(

1

,sin

31,3 0,01; 8,1;- X ;3,25B 7,4;- A 9.

static void Main(string[] args)

{

Double a, b, x;

Console.WriteLine(" Введите числа a, b, x: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if (x < a)

{

Console.WriteLine(" y = " + (Math.Abs(Math.Sin(x))));

Console.ReadKey();

return;

}

if ((a <= x) && (Math.Atan(a-b) != 0))

{

Console.WriteLine(" y = " + (1/Math.Atan(a-b)));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=-7,4;b=25,3;x=-8,1;y=0,969889810845086

Page 101: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

71

2) a=-7,4;b=25,3;x=0,01;y=-0,649255868608209

3) a=-7,4;b=25,3;x=31,3;y=-0,649255868608209

AXXarctg

AXAX

Y,

1

,cos

4,2 2,4; 1,8; X 2,1; A

3

10.

static void Main(string[] args)

{

Double a, b, x;

Console.WriteLine(" Введите числа a, x: ");

a = Convert.ToDouble(Console.ReadLine());

x = Convert.ToDouble(Console.ReadLine());

if ((x <= a) && (a >= 0))

{

Console.WriteLine(" y = " + (Math.Cos(x) - Math.Sqrt(a)));

Console.ReadKey();

return;

}

if ((a < x) && (Math.Atan(x) != 0))

{

Console.WriteLine(" y = " +

(1/(Math.Atan(x)*Math.Atan(x)*Math.Atan(x))));

Console.ReadKey();

return;

}

Console.WriteLine(" нет решения ");

Console.ReadKey();

}

Ответ: 1) a=2,1;x=1,8;y=-1,67633976931203

2) a=2,1;x=2,4;y=0,614854372556878

3) a=2,1;x=4,2;y=0,418363694432899

Page 102: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

72

4.4.5 Основные задания

В заданиях предполагается, что будет выполнено три прогона

программы с различными значениями х для проверки работы различных

ветвей.

BXXA

BXAX

AXAX

,11

,1

,sin

7,1 0; 2,5;- X 5,7;В 1,3;А 1.

BXX

BXABA

AXXA

,ln

,cos

,1

2,1 1,2; 0,1; X 1,9;В 0,5;А .2

BXX

BXABAtg

AXXA

,sin

,

,ln

1

9,3 1,7; 8,2;- X 5,5;В ,1;7А 3.

BXXBarctg

BXAB

AXBAX

,1

,ln

,3sin

0,5 2,9;- 5,7;- X 0,25;B 3,5;- A 4.

BXX

BXAA

AXBA

,3sin

1ln

,sin

,22

4,3 1,9; 7,7;- X 3,4;B 0,3; A 5.

BXA

BXABX

AXAX

,ln

1

,cos

,

11,2 3,7; 7,8;- X 8,9;B 0,5; A 6.

BXAarctg

BXAXA

AXBAX

,2

1

,2*

,

9,1 0,3; 9,1;- X 8,8;B 7,1;- A 7.

BXBXB

BXAA

AXXA

,3*

,

,lnln

6,1 4,4; 3,1;- X ;9,5B 3,2; A 8.

BXBAarctg

BXABA

AXX

Y

,)(

1

,

,sin

31,3 0,01; 8,1;- X ;3,25B 7,4;- A 9.

BXXarctg

BXAABe

AXAX

Y

,3

1

,cos

,cos

4,2 2,4; 1,8; X ;4,3B 2,1; A 10.

При прогоне программы на компьютере правильность расчета можно

проверить, отслеживая, какая из ветвей была выполнена, на калькуляторе.

Page 103: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

73

4.5 Разветвляющаяся структура. Тема № 3. Нестандартные задания

4.5.1 Подготовительные задания

1. Дана прямоугольная система координат на плоскости. Четыре угла,

образованные осями координат X и Y, называются координатными углами

(или квадрантами) и нумеруются против часовой стрелки. Определить и

вывести на экран номер квадранта, в котором расположена точка М(x,y).

static void Main(string[] args)

{

double x, y, n = 0;

Console.WriteLine("Введите координаты точки");

Console.Write("x=");

x = Convert.ToDouble(Console.ReadLine());

Console.Write("y=");

y = Convert.ToDouble(Console.ReadLine());

if ((x > 0) && (y > 0)) n = 1;

if ((x < 0) && (y > 0)) n = 2;

if ((x < 0) && (y < 0)) n = 3;

if ((x > 0) && (y < 0)) n = 4;

Console.WriteLine("номер квадранта = " + n);

Console.ReadLine();

}

2. Ввести с клавиатуры три числа, одно из которых отрицательное.

Возвести в квадрат и вывести результат расчета на экран для тех чисел,

значения которых неотрицательны.

static void Main(string[] args)

{

double a, b, c;

Console.Write("a=");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("b=");

b = Convert.ToDouble(Console.ReadLine());

Console.Write("c=");

c = Convert.ToDouble(Console.ReadLine());

Page 104: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

74

if (a >= 0) Console.WriteLine("a*a=" + a * a);

if (b >= 0) Console.WriteLine("b*b=" + b * b);

if (c >= 0) Console.WriteLine("c*c=" + c * c);

Console.ReadLine();

}

3. Написать программу вычисления значения функции

случаяхостальныхв

xеслиx

xеслиxx

y

,0

02,4

20,*

static void Main(string[] args)

{

double x, y = 1;

Console.Write("x=");

x = Convert.ToDouble(Console.ReadLine());

if ((x > 0) && (x < 2)) y = y * y;

if ((x > -2) && (x <= 0)) y = x + 4;

if ((x <= -2) || (x >= 2)) y = 0;

Console.WriteLine("y=" + y);

Console.ReadLine();

}

4. Написать программу выбора наибольшего из трех чисел.

Вариант № 1

static void Main(string[] args)

{

Double a, b, c, max;

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

max = a; // присваиваем переменной max начальное значение

if (max < b) max = b ;

Page 105: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

75

if (max < c) max = c ;

Console.WriteLine ( "наибольшее число = " + max );

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

Double a, b, c;

Console.Write("a=");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("b=");

b = Convert.ToDouble(Console.ReadLine());

Console.Write("c=");

c = Convert.ToDouble(Console.ReadLine());

if ((a > b) && (a > c))

Console.WriteLine("max=" + a);

if ((b > a) && (b > c))

Console.WriteLine("max=" + b);

if ((c > a) && (c > b))

Console.WriteLine("max=" + c);

Console.ReadLine();

}

5. Написать программу выбора наименьшего из трех чисел.

static void Main(string[] args)

{

Double a, b, c, min;

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

min = a; // присваиваем переменной min начальное значение

if (min > b) min = b ;

if (min > c) min = c ;

Page 106: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

76

Console.WriteLine ( "min = " + min );

Console.ReadKey();

}

6. Вычислить среднее арифметическое из пяти чисел и вывести на

экран, положительное оно или отрицательное.

static void Main(string[] args)

{

Double a, b, c, d, e, sred_ar;

Console.WriteLine (" Введите a, b, c, d, e: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

d = Convert.ToDouble (Console.ReadLine());

e = Convert.ToDouble (Console.ReadLine());

sred_ar = (a + b + c + d + e)/5; // вычисляем среднее

арифметическое

if(sred_ar > 0)Console.WriteLine("среднее арифметическое -

положительное");

if(sred_ar < 0)Console.WriteLine("среднее арифметическое -

отрицательное");

Console.ReadKey();

}

7. Выяснить, принадлежит ли точка М(x,y) кругу радиуса r с центром

в начале координат.

static void Main(string[] args)

{

Double x, y, r;

Console.WriteLine("Введите координаты точки М");

Console.Write(" x=");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" y=");

y = Convert.ToDouble(Console.ReadLine());

Page 107: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

77

Console.WriteLine();

Console.WriteLine("Введите радиус круга r");

Console.Write(" r=");

r = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

if (x * x + y *y <= r * r)

Console.WriteLine("точка М принадлежит кругу");

else Console.WriteLine("точка М не принадлежит кругу");

Console.ReadKey();

}

8. Определить, является ли введенное с клавиатуры целое число

четным или нечетным.

static void Main(string[] args)

{

int a;

Console.Write("a=");

a = Convert.ToInt32(Console.ReadLine());

// если x, y, z – целого типа,

// z = x/y - остаток от деления отбрасывается, результат

присваивается z

// z = x%y - остаток от деления присваивается z

if (a % 2 == 0) Console.WriteLine("число четное");

else Console.WriteLine("число нечетное");

Console.ReadKey();

}

9. Определить, делится ли введенное с клавиатуры целое число на 3

нацело или не делится.

static void Main(string[] args)

{

int a;

Console.Write("a=");

Page 108: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

78

a = Convert.ToInt32(Console.ReadLine());

// если x, y, z – целого типа,

// z = x/y - остаток от деления отбрасывается, результат

присваивается z

// z = x%y - остаток от деления присваивается z

if (a % 3 == 0) Console.WriteLine("число делится на 3");

else Console.WriteLine("число не делится на 3");

Console.ReadKey();

}

10. Даны два целых числа. Определить остаток от целочисленного

деления и вывести на экран сообщение, равен ли остаток 0 или не равен. В

последнем случае вывести и значение остатка.

Вариант № 1

static void Main(string[] args)

{

int a, b;

Console.Write("a=");

a = Convert.ToInt32(Console.ReadLine());

Console.Write("b=");

b = Convert.ToInt32(Console.ReadLine());

// если x, y, z – целого типа,

// z = x/y - остаток от деления отбрасывается, результат

присваивается z

// z = x%y - остаток от деления присваивается z

if (a % b == 0) Console.WriteLine("остаток равен 0");

else Console.WriteLine("остаток от деления = " + a % b);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b;

Console.Write("a=");

Page 109: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

79

a = Convert.ToInt32(Console.ReadLine());

Console.Write("b=");

b = Convert.ToInt32(Console.ReadLine());

// если x, y, z – целого типа,

// z = x/y - остаток от деления отбрасывается, результат

присваивается z

// z = x%y - остаток от деления присваивается z

Console.WriteLine("остаток от деления = " + a % b);

Console.ReadKey();

}

Page 110: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

80

4.5.2 Основные задания

1. Ввести с клавиатуры числа x, y. Меньшее из этих двух чисел

заменить их полусуммой, а большее – их удвоенным произведением.

Результат вывести на экран.

2. С клавиатуры введены три числа a,b и c. Определить, можно ли из

отрезков с величинами сторон a,b,c составить треугольник.

3. Даны x, y. Если x и y отрицательны, то каждое значение заменить

его модулем; если отрицательно только одно из них, то оба значения

увеличить на 0.5; если оба значения неотрицательны, то оба значения

увеличить в 10 раз.

4. Выяснить, принадлежит ли точка М(x,y) кругу радиуса r с центром

в точке с координатами a,b.

5. Выяснить, принадлежит ли точка М(x,y) кольцу с центром в начале

координат, внешним радиусом r1, внутренним радиусом r2.

6. Даны 4 натуральных чисел, причем некоторые из них равны между

собой. Вывести на экран значения всех чисел, не равных между собой.

7. Ввести число в диапазоне 1-99, означающее возраст человека, с

клавиатуры. Вывести это же число с дополнительным словом год, года,

лет, например, 1 год, 4 года, 12 лет и т.д.

8. Написать программу решения квадратного уравнения ax2+bx+c=0.

Вывести либо значения корней, либо сообщение, что корней нет.

Проверить для 23x2-51,5x-100,1=0 (3.4871, -1.2480)

9. Год високосный, если его номер делится на 4, за исключением тех,

которые делятся на 100 и не делятся на 400. Являются ли високосными

1928, 1900, 1992, 1994? (да, нет, да, нет)

10. Ввести с клавиатуры число от 1 до 7. На числа от 1 до 5 программа

должна выводить сообщение «рабочий день», на числа 6,7 – «выходной

день».

11. Даны 4 числа. Вывести на экран произведение натуральных

(целых положительных) чисел.

12. Даны 4 числа. Вывести на экран для чисел, не являющихся

целыми, сумму их дробных частей.

Ответы на основные задания темы: Разветвляющаяся структура.

Тема № 3. Нестандартные задания смотрите на странице 249.

Page 111: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

81

4.6 Разветвляющаяся структура. Тема № 4. Оператор switch

При написании программы использовать оператор switch

1. Используя случайное число в диапазоне от 1 до 7, вывести на экран

название дня недели.

2. Ввести с клавиатуры название дня недели, вывести на экран номер

этого дня недели.

3. Используя случайное число в диапазоне от 1 до 12, вывести на

экран название месяца.

4. Ввести с клавиатуры название месяца, вывести на экран номер

этого месяца.

5. Ввести с клавиатуры число в диапазоне от 1 до 12, вывести на

экран соответствующее месяцу время года: зима, весна, лето, осень.

6. Ввести число в диапазоне 1-99, означающее возраст человека, с

клавиатуры. Вывести это же число с дополнительным словом год, года,

лет, например, 1 год, 4 года, 12 лет и т.д.

7. Даны числа a,b. После сообщения – Выполнить действие:

суммирование (1), вычитание (2), умножение (3), деление (4), среднее

арифметическое (5) ввести номер действия и получить на экране

результат расчета.

8. Дано число a. После сообщения – Вычислить функцию: синус (1),

косинус (2), тангенс (3), котангенс (4), арктангенс (5), экспонента (6)

ввести номер вычисляемой функции и получить на экране результат

расчета.

9. Используя случайное число от 0 до 9, вывести на экран название

цифры в текстовом виде.

10. Ввести название цифры в текстовом виде. Вывести на экран

соответствуюшую цифру от 0 до 9.

Ответы на задания темы: Разветвляющаяся структура. Тема № 4.

Оператор switch смотрите на странице 257.

Page 112: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

82

5. АЛГОРИТМЫ И ПРОГРАММЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

5.1 Циклическая алгоритмическая конструкция

Циклической (или циклом) называют алгоритмическую конструкцию,

в которой определенная, идущая подряд группа действий (шагов)

алгоритма может выполняться несколько раз, в зависимости от входных

данных или условия задачи. Группа повторяющихся на каждом шагу

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

содержит в себе элементы ветвящейся алгоритмической конструкции.

Рассмотрим три типа циклических алгоритмов: цикл с параметром

(который называют арифметическим циклом), цикл с предусловием и цикл

с постусловием (их называют итерационными).

5.1.1 Цикл с параметром

Рис. 12. Цикл с параметром.

В арифметическом цикле (рис. 12, 13) число его шагов (повторений)

однозначно определяется правилом изменения параметра i, которое

задается с помощью начального a и конечного b значений параметра и

Page 113: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

83

шагом h его изменения. То есть, на первом шаге цикла значение параметра

равно i = a, на втором i = a + h, на третьем i = a + 2 h и так далее. На

последнем шаге цикла значение параметра i ≤ b, но такое, что i + h > b.

Рис. 13. Цикл с параметром с использованием блока цикла.

Пример алгоритма цикла с параметром.

На рис. 14 изображен алгоритм вывода десяти раз слова «Привет!» в

виде блок - схемы.

Словесное описание алгоритма:

1. Начало.

2. Начальное значение параметра i=1, конечное значение i=10, шаг

изменения параметра h=1. Цикл выполняется 10 раз.

3. Конец.

Рис. 14. Пример алгоритма цикла с параметром.

Page 114: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

84

Оператор цикла с параметром for подробно описан ниже в п. 5.2.

5.1.2 Цикл с предусловием

В цикле с предусловием проверка условия предшествует телу цикла.

Число шагов (повторений) цикла не определено. Группа действий (тело

цикла) выполняется до тех пор, пока истинно условие. Как только условие

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

действию, следующему после цикла.

Если первая проверка условия показывает, что оно ложно, цикл не

выполнится ни разу. Если условие истинно, а действия в теле цикла не

влияют на условие и не изменяют его, цикл становится бесконечным. В

этом случае говорят, что «программа зациклилась».

Рис. 15. Цикл с предусловием.

Пример алгоритма цикла с предусловием.

На рис. 16 изображен алгоритм поиска минимального числа, куб

которого больше либо равен числу 2016, в виде блок - схемы.

Словесное описание алгоритма:

1. Начало.

2. Присваиваем переменной x значение 1.

3. Если условие x3 < 2016, то x = x + 1, иначе переход к п.5.

4. Переход к п. 3.

5. Вывод значения x.

3. Конец.

Page 115: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

85

Рис. 16. Пример алгоритма цикла с предусловием.

В процессе выполнения алгоритма значение переменной x

наращивается до тех пор, пока не выполнится условие x3 ≥ 2016, после

чего значение x выводится на печать.

В языке С# организовать цикл с предусловием позволяет оператор

цикла while. Ниже приведена простейшая форма этого оператора.

while (условие) {последовательность операторов};

Программа поиска минимального числа, куб которого больше либо

равен числу 2016, с использованием оператора while будет выглядеть

следующим образом.

static void Main(string[] args)

{

Page 116: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

86

int x = 1;

while (x * x * x < 2016) x++;

Console.WriteLine("x = " + x);

Console.ReadKey();

}

5.1.3 Цикл с постусловием

В цикле с предусловием сначала хотя бы один раз выполняется тело

цикла, и только затем идет проверка условия. Число шагов (повторений)

цикла не определено. Группа действий (тело цикла) выполняется до тех

пор, пока истинно условие. Как только условие становится ложным, цикл

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

условия.

Если первая проверка условия показывает, что оно ложно, цикл

выполнится только один раз. Если условие истинно, а действия в теле

цикла не влияют на условие и не изменяют его, цикл становится

бесконечным.

Рис. 17. Цикл с постусловием.

Пример алгоритма цикла с постусловием.

На рис. 18 изображен алгоритм поиска минимального числа, куб

которого больше либо равен числу 2016, в виде блок - схемы.

Словесное описание алгоритма:

1. Начало.

2. Присваиваем переменной x значение 1.

3. Вычисляем x + 1 и присваиваем это значение x: x = x + 1

Page 117: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

87

4. Если условие x3 < 2016, то переход к п. 3.

5. Вывод значения x.

3. Конец.

В процессе выполнения алгоритма значение переменной x

наращивается до тех пор, пока не выполнится условие x3 ≥ 2016, после

чего значение x выводится на печать.

Рис. 18. Пример алгоритма цикла с постусловием.

В языке С# организовать цикл с постусловием позволяет оператор

цикла do while. Ниже приведена простейшая форма этого оператора.

do {последовательность операторов} while (условие);

Page 118: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

88

Программа поиска минимального числа, куб которого больше либо

равен числу 2016, с использованием оператора do while будет выглядеть

следующим образом.

static void Main(string[] args)

{

int x = 1;

do x++; while (x * x * x < 2016);

Console.WriteLine("x = " + x);

Console.ReadKey();

}

5.2 Оператор цикла for

Оператор цикла for позволяет организовать цикл с параметром. Ниже

приведена простейшая форма этого оператора.

for (инициализация; условие; итерация) оператор;

В самой общей форме в части инициализация данного оператора

задается начальное значение переменной управления циклом (параметра

цикла). Часть условие представляет собой булево выражение,

проверяющее значение переменной управления циклом. Если результат

проверки истинен, то цикл продолжается. Если же он ложен, то цикл

завершается. В части итерация определяется порядок изменения

переменной управления циклом на каждом шаге цикла, когда он

повторяется.

А вот как выглядит его форма для повторного выполнения кодового

блока:

for(инициализация; условие; итерация)

{

последовательность операторов;

}

Пример программы с оператором цикла for.

// демонстрация применения оператора цикла for.

static void Main(string[] args)

{

int count;

for (count = 0; count < 5; count = count + 1)

Console.WriteLine ("Это подсчет: " + count);

Page 119: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

89

Console.WriteLine ("Готово!"); Console.ReadKey();

}

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

Это подсчет: 0

Это подсчет: 1

Это подсчет: 2

Это подсчет: 3

Это подсчет: 4

Готово!

В данном примере count выполняет роль переменной управления

циклом. В инициализирующей части оператора цикла for задается нулевое

значение этой переменной. В начале каждого шага цикла, включая и

первый, проверяется условие count < 5.

Если эта проверка дает истинный результат, то выполняется оператор,

содержащий метод WriteLine(). Далее выполняется итерационная часть

оператора цикла for, где значение переменной count увеличивается на 1.

Этот процесс повторяется до тех пор, пока значение переменной count не

достигнет величины 5. В этот момент проверка упомянутого выше условия

дает ложный результат, что приводит к завершению цикла. Выполнение

программы продолжается с оператора, следующего после цикла.

В программах, профессионально написанных на С#, обычно не

записывают count = count + 1;

Как уже описывалось выше, в С# обычно применяют специальный

оператор инкремента, выполняющий приращение на 1 значение

переменной, или так называемого операнда. Этот оператор обозначается

двумя знаками + (++). Используя оператор инкремента, можно переписать

приведенную выше строку следующим образом.

count++;

Таким образом, оператор цикла for из приведенного выше примера

программы, как правило, записывается в следующем виде.

for (count = 0; count < 5; count++)

Цикл for может продолжаться как в положительном, так и в

отрицательном направлении, изменяя значение переменной управления

циклом на любую величину.

Пример программы с оператором цикла for по убыванию.

В приведенном ниже примере программы выводятся числа,

постепенно уменьшающиеся от 100 до -100 на величину 5.

Page 120: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

90

// выполнение цикла for в отрицательном направлении.

static void Main(string[] args)

{

int x;

for (x = 100; x > -100; x -= 5)

Console.WriteLine(x);

}

В отношении циклов for следует особо подчеркнуть, что условное

выражение всегда проверяется в самом начале цикла. Это означает, что

код в цикле может вообще не выполняться, если проверяемое условие с

самого начала оказывается ложным.

Рассмотрим следующий пример.

for(count=10; count < 5; count++)

x += count; // этот оператор не будет выполняться

Данный цикл вообще не будет выполняться, поскольку

первоначальное значение переменной count, которая им управляет, сразу

же оказывается больше 5. Это означает, что условное выражение count < 5

оказывается ложным с самого начала, т.е. еще до выполнения первого

шага цикла.

Page 121: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

91

5.3 Циклическая структура. Тема № 1. Простые задания

5.3.1 Подготовительные задания

1. Даны целые числа K и N (N>0). Вывести N раз число K.

static void Main(string[] args)

{

int k, n;

Console.Write(" k = "); k = Convert.ToInt32(Console.ReadLine());

Console.Write(" n = "); n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i < n; i++) Console.WriteLine(k);

Console.ReadKey();

}

static void Main(string[] args)

{

int i=0, k, n;

Console.Write(" k = "); k = Convert.ToInt32(Console.ReadLine());

Console.Write(" n = "); n = Convert.ToInt32(Console.ReadLine());

while (i < n)

{

Console.WriteLine(k);

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i=0, k, n;

Console.Write(" k = "); k = Convert.ToInt32(Console.ReadLine());

Console.Write(" n = "); n = Convert.ToInt32(Console.ReadLine());

do

{

Console.WriteLine(k);

i++;

}

while (i < n);

Console.ReadKey();

}

Page 122: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

92

2. Даны два целых числа A и B (A < B). Вывести в порядке

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

числа A и B), а также количество N этих чисел.

static void Main(string[] args)

{

int a, b, n=0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

for (int i = a; i <= b; i++)

{

Console.WriteLine(i);

n++;

}

Console.WriteLine("n="+n);

Console.ReadKey();

}

static void Main(string[] args)

{

int i, a, b, n = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i = a;

while (i <= b)

{

Console.WriteLine(i);

n++;

i++;

}

Console.WriteLine("n=" + n);

Console.ReadKey();

}

Page 123: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

93

static void Main(string[] args)

{

int i, a, b, n = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i = a;

do

{

Console.WriteLine(i);

n++;

i++;

}

while (i <= b);

Console.WriteLine("n=" + n);

Console.ReadKey();

}

3. Даны два целых числа A и B (A < B). Вывести в порядке убывания

все целые числа, расположенные между A и B (не включая числа A и B), а

также количество N этих чисел.

static void Main(string[] args)

{

int a, b, n = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

for (int i = b - 1; i > a; i--)

{

Console.WriteLine(i);

n++;

}

Console.WriteLine("n=" + n);

Console.ReadKey();

}

Page 124: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

94

static void Main(string[] args)

{

int i, a, b, n = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i = b - 1;

while (i > a)

{

Console.WriteLine(i);

n++;

i--;

}

Console.WriteLine("n=" + n);

Console.ReadKey();

}

static void Main(string[] args)

{

int i, a, b, n = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i = b - 1;

do

{

Console.WriteLine(i);

n++;

i--;

}

while (i > a);

Console.WriteLine("n=" + n);

Console.ReadKey();

}

Page 125: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

95

4. Даны два целых числа A и B (A < B). Найти сумму всех целых

чисел от А до В включительно.

static void Main(string[] args)

{

int a, b, s = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

for (int i = a; i <= b; i++) s += i;

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int a, b, s = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

int i = a;

while (i <= b)

{

s += i;

i++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

Page 126: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

96

static void Main(string[] args)

{

int a, b, s = 0;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

int i = a;

do

{

s += i;

i++;

}

while (i <= b);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

5. Даны два целых числа A и B (A < B). Найти произведение всех

целых чисел от А до В включительно.

static void Main(string[] args)

{

int a, b, p = 1;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

for (int i = a; i <= b; i++) p *= i;

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

static void Main(string[] args)

{

int a, b, p = 1;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

Page 127: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

97

int i = a;

while (i <= b)

{

p *= i;

i++;

}

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

static void Main(string[] args)

{

int a, b, p = 1;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

int i = a;

do

{

p *= i;

i++;

}

while (i <= b);

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

6. Дано целое число N(>0). Найти сумму

(вещественное число).

static void Main(string[] args)

{

int n;

Double s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++) s += 1.0 / i;

Console.WriteLine(" s = " + s);

Page 128: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

98

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

s += 1.0 / i;

i++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

s += 1.0 / i;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

7. Дано целое число N(>0). Найти сумму

(целое число).

static void Main(string[] args)

Page 129: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

99

{

int n, s=0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = n; i <= 2 * n; i++) s += i * i;

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n, s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = n;

while (i <= 2 * n)

{

s += i * i;

i++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n, s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = n;

do

{

s += i * i;

i++;

}

while (i <= 2*n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

Page 130: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

100

8. Дано целое число N(>0). Найти произведение 1.1*1.2*1.3 (N

сомножителей).

static void Main(string[] args)

{

int n;

Double p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++) p *= 1 + i * 0.1;

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

p *= 1 + i * 0.1;

i++;

}

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

Page 131: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

101

{

p *= 1 + i * 0.1;

i++;

}

while (i <= n);

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

9. Дано целое число N(>0). Найти значение суммы 1.1-1.2+1.3-… (N

слагаемых, знаки чередуются). Условный оператор не использовать.

static void Main(string[] args)

{

int n;

Double s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++) s += (1 + i * 0.1) * Math.Pow(-1, i + 1);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

s += (1 + i * 0.1) * Math.Pow(-1, i + 1);

i++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

Page 132: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

102

static void Main(string[] args)

{

int n;

Double s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

s += (1 + i * 0.1) * Math.Pow(-1, i + 1);

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

10. Дано целое число N(>0). Найти квадрат данного числа, используя

для его вычисления следующую формулу:

После добавления к сумме каждого слагаемого выводить текущее

значение суммы ( в результате будут выведены квадраты всех целых чисел

от 1 до N).

static void Main(string[] args)

{

int n, s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

{

s += 2 * i - 1;

Console.WriteLine(s);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n, s = 0;

Console.Write(" n = ");

Page 133: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

103

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

s += 2 * i - 1;

i++;

Console.WriteLine(s);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n, s = 0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

s += 2 * i - 1;

i++;

Console.WriteLine(s);

}

while (i <= n);

Console.ReadKey();

}

11. Дано вещественное число А и целое число N(>0). Используя один

цикл, вывести все целые степени числа А от 1 до N.

static void Main(string[] args)

{

int n;

Double a;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i <= n; i++) Console.WriteLine(Math.Pow(a,i));

Page 134: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

104

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

while (i <= n) Console.WriteLine(Math.Pow(a, i++));

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

do Console.WriteLine(Math.Pow(a, i++));

while (i <= n);

Console.ReadKey();

}

12. Дано вещественное число А и целое число N(>0). Используя один

цикл, найти сумму

static void Main(string[] args)

{

int n;

Double a, s = 0;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

Page 135: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

105

n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i <= n; i++) s += Math.Pow(a, i);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a, s = 0;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

while (i <= n) s += Math.Pow(a, i++);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a, s = 0;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

do s += Math.Pow(a, i++);

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

13. Дано вещественное число А и целое число N(>0). Используя один

цикл, найти значение выражения

Условный оператор не использовать.

Page 136: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

106

static void Main(string[] args)

{

int n;

Double a, s = 0;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i <= n; i++) s += Math.Pow(-a, i);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a, s = 0;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

while (i <= n) s += Math.Pow(-a, i++);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a, s = 0;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

do s += Math.Pow(-a, i++);

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

Page 137: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

107

}

14. Дано целое число 0<N<20. Найти произведение (N –

факториал).

static void Main(string[] args)

{

int n;

long p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++) p *= i;

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

long p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n) p *= i++; // или {p=p*i; i=i+1;}

Console.WriteLine(" p = " + p);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

long p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do p *= i++;// или {p=p*i; i=i+1;}

while (i <= n);

Console.WriteLine(" p = " + p);

Console.ReadKey();

Page 138: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

108

}

15. Дано целое число 0<N<20. Используя один цикл, найти сумму

(выражение N! - N–факториал – обозначает

произведение всех целых чисел от 1 до N: ).

static void Main(string[] args)

{

int n;

long s = 0, p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

{

p *= i; s += p;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

long s = 0, p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

p *= i;

s += p;

i ++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Page 139: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

109

long s = 0, p = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

p *= i;

s += p;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

16. Дано целое число N(>0). Используя один цикл, найти сумму

(выражение N! - N–факториал –

обозначает произведение всех целых чисел от 1 до N: ).

Полученное число является приближенным значением константы

static void Main(string[] args)

{

int n;

long p = 1;

Double s = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

{

p *= i; s += 1.0 / p;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

long p = 1;

Page 140: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

110

Double s = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

p *= i;

s += 1.0 / p;

i++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

long p = 1;

Double s = 1;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do {

p *= i;

s += 1.0 / p;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

17. Дано вещественное число Х и целое число N (>0). Найти значение

выражения ( ). Полученное

число является приближенным значением функции ехp в точке Х.

static void Main(string[] args)

{

int n;

long p = 1;

Double x, s = 1;

Page 141: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

111

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

{

p *= i;

s += Math.Pow(x, i) / p;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{ int n;

long p = 1;

Double x, s = 1;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

p *= i;

s += Math.Pow(x,i) / p;

i++;

}

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

static void Main(string[] args)

{ int n;

long p = 1;

Double x, s = 1;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

Page 142: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

112

p *= i;

s += Math.Pow(x, i) / p;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.ReadKey();

}

18. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения Полученное

число является приближенным значением функции ln в точке 1+Х.

Проверить работу программы для Х=-0,27, N=20. Ответ: -

0,314710744839627

static void Main(string[] args)

{

int n;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

s += Math.Pow(-1, i - 1) * Math.Pow(x, i) / i;

Console.WriteLine(" s = " + s);

Console.WriteLine(" ln(1+x) = " + Math.Log(1 + x));

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

Page 143: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

113

{

s += Math.Pow(-1, i - 1) * Math.Pow(x, i) / i;

i++;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" ln(1+x) = " + Math.Log(1 + x));

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

s += Math.Pow(-1, i - 1) * Math.Pow(x, i) / i;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.WriteLine(" ln(1+x) = " + Math.Log(1 + x));

Console.ReadKey();

}

19. Дано целое число N (>1) и две вещественные точки на числовой

оси: A, B (A<B). Отрезок [A, B] разбит на N равных отрезков. Вывести H –

длину каждого отрезка, а также набор точек

образующий разбиение отрезка [A, B]. Проверить работу программы

для A= -3,24; B =6,42; N=4. Ответ: H=2,415 ; точки -3,24; -0,825; 1,59;

4,005.

static void Main(string[] args)

{

int n; Double a, b, h;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b = ");

Page 144: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

114

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

h=(b-a)/n; Console.WriteLine(" h = " + h);

for (int i = 0; i < n; i++) Console.WriteLine(a+i*h);

Console.ReadKey();

}

static void Main(string[] args)

{

int n; Double a, b, h;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

h=(b-a)/n; Console.WriteLine(" h = " + h);

int i = 0;

while (i < n)

{ Console.WriteLine(a+i*h); i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a, b, h;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

h=(b-a)/n; Console.WriteLine(" h = " + h);

int i = 0;

do { Console.WriteLine(a+i*h); i++;

Page 145: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

115

}

while (i <= n);

Console.ReadKey();

}

20. Дано целое число N (>0). Последовательность вещественных

чисел АК определяется следующим образом:

Вывести элементы Проверить работу программы

для N=7. Ответ: 2,5; 2,4; 2,4166666; 2,41379310; 2,41428571;

2,41420118; 2,41421568.

static void Main(string[] args)

{

int n;

Double a=2;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i < n; i++)

{

a=2+1/a;

Console.WriteLine(a);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a=2;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

while (i < n)

{

a=2+1/a;

Console.WriteLine(a);

i++;

}

Page 146: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

116

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

Double a=2;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

do {

a=2+1/a;

Console.WriteLine(a);

i++;

}

while (i < n);

Console.ReadKey();

}

Page 147: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

117

5.3.2 Основные задания

1. Дано вещественное число Х и целое число N (>0). Найти значение

выражения

( ). Полученное число - приближенное значение функции

sin в точке Х. Проверить для Х=1, N=12. Ответ: 0,841470984807897.

2. Дано вещественное число Х и целое число N (>0). Найти значение

выражения

( ). Полученное число – приближенное значение функции

cos в точке Х. Проверить для Х=1, N=12. Ответ: 0,54030230586814.

3. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения

Полученное число - приближенное значение функции arctg в точке Х.

Проверить для Х=-0,52, N=20. Ответ: -0,479519291992608.

4. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения

Полученное число -

приближенное значениее функции arcsin в точке Х. Проверить работу

программы для Х=-0,91, N=70. Ответ: -1,14328405839657 .

5. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения

Полученное число

является приближенным значением функции Проверить для

Х=0,43, N=15. Ответ: 1,19582607874254.

6. Дано целое число N (>1) и две вещественные точки на числовой

оси: A, B (A<B). Отрезок [A, B] разбит на N равных отрезков. Вывести H –

длину каждого отрезка, а также значения функции в

точках, образующих отрезок [A, B]:

Проверить работу

программы для A= -2,18; B =5,72; N=5. Ответ: H=1,58; значения функции

в точках 1,820103; 1,564642; 0,169502; 0,450644; 1,8406094.

7. Дано целое число N (>0). Последовательность чисел Фиббоначчи

FK (целого типа) определяется следующим образом:

Вывести элементы Проверить для N=15. Ответ: 1; 1;

2; 3; 5; 8; 13; 21; 34; 55; 89;144; 233;377; 610.

Page 148: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

118

8. Дано целое число N (>0). Последовательность вещественных чисел

АК определяется следующим образом:

Вывести элементы Проверить для N=5. Ответ: 1; 2;

1,6666666; 1,77777777; 1,74074074.

9. Дано целое число N (>2). Последовательность целых чисел АК

определяется следующим образом:

Вывести элементы Проверить для N=10. Ответ: 1;

2; 3; 3; 2; -1; -5; -10; -13; -13.

10. Дано целое число N (>0). Найти сумму

Проверить для N=14 . Ответ: 33087205 .

11. Даны целые положительные числа A и B (A < B). Вывести все

целые числа от A до B включительно; при этом каждое число должно

выводиться столько раз, каково его значение (например, число 3

выводится 3 раза). Проверить работу программы для A=2, B=5 .

Ответ:

12. Даны целые положительные числа A и B (A < B). Вывести все

целые числа от A до B включительно; при этом число А должно

выводиться 1 раз, число А + 1 должно выводиться 2 раза и т.д. Проверить

работу программы для A=3, B=6 .

Ответ:

Ответы на задания темы: Циклическая структура. Тема № 1.

Простые задания смотрите на странице 263.

Page 149: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

119

5.4 Циклическая структура. Тема № 2. Вывод горизонтальных и

вертикальных линий

5.4.1 Подготовительные задания

Горизонтальные и вертикальные линии.

1. Вывести на экран горизонтальную строку из 18 символов.

static void Main(string[] args)

{

int i;

for(i=0;i<18;i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

2. Вывести на экран горизонтальную строку из 20 символов, отступив

от верхнего края на 4 строки.

static void Main(string[] args)

{

int i, j;

for(i=0;i<4;i++) Console.WriteLine();

for(i=0;i<20;i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 150: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

120

3. Вывести на экран вертикальную строку из 25 символов.

static void Main(string[] args)

{

int i;

for(i=0;i<25;i++) Console.WriteLine("#");

Console.ReadKey();

}

Результат прогона программы:

4. Вывести на экран вертикальную строку из 18 символов,

отодвинутую от левого края экрана на 5 позиций.

Вариант № 1 (желательно использовать)

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 18; i++)

{ for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#"); }

Console.ReadKey();

}

Вариант № 2

Page 151: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

121

static void Main(string[] args)

{

int i;

for (i = 0; i < 18; i++) Console.WriteLine(" #");

Console.ReadKey();

}

Результат прогона программы:

5. Вывести на экран 5 горизонтальных строк, каждая из 15 символов.

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 5; i++)

{

for (j = 0; j < 15; j++)

Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 152: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

122

6. Вывести на экран горизонтальную строку из 11 символов, затем 5

пустых строк, затем еще одну горизонтальную строку из 9 символов.

static void Main(string[] args)

{

int i;

for (i = 0; i < 11; i++) Console.Write("#");

for (i = 0; i < 5; i++) Console.WriteLine();

for (i = 0; i < 9; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

7. Вывести на экран 4 горизонтальных строки, каждая из которых

состоит из 7 символов, отделенных друг от друга пустыми строками.

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 4; i++)

{

for (j = 0; j < 7; j++) Console.Write("#");

Console.WriteLine();

Console.WriteLine();

Page 153: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

123

}

Console.ReadKey();

}

Результат прогона программы:

8. Вывести на экран 7 вертикальных строк, каждая из которых

состоит из 15 символов, отстоящих друг от друга на 3 позиции.

static void Main(string[] args)

{

int i, j, k;

for (i = 0; i < 15; i++)

{

for (j = 0; j < 7; j++)

{

Console.Write("#");

for (k = 0; k < 3; k++) Console.Write(" ");

}

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 154: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

124

Простейшие фигуры из горизонтальных и вертикальных линий.

1. Вывести на экран прямой угол вида ┌ ┐ └ ┘, образованный

сочетанием горизонтальной и вертикальной линии.

а) прямой угол вида ┌

static void Main(string[] args)

{

int i;

for (i = 0; i < 10; i++)Console.Write("#");

Console.WriteLine();

for (i = 0; i < 12; i++)Console.WriteLine("#");

Console.ReadKey();

}

Результат прогона программы:

б) прямой угол вида ┐

Page 155: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

125

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 10; i++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 12; i++)

{for (j = 0; j < 9; j++) Console.WriteLine(" ");

Console.WriteLine("#"); }

Console.ReadKey();

}

Результат прогона программы:

в) прямой угол вида └

static void Main(string[] args)

{

int i;

for (i = 0; i < 14; i++) Console.WriteLine("#");

for (i = 0; i < 12; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 156: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

126

г) прямой угол вида ┘

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 12; i++)

{

for (j = 0; j < 9; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 10; i++) Console.Write("#");

Console.WriteLine();

Console.ReadKey();

}

Результат прогона программы:

Page 157: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

127

2. Вывести на экран фигуры вида ├ ┤ ┬ ┴ , образованные сочетанием

горизонтальной и вертикальной линии.

а) фигура вида ├

Вариант № 1

static void Main(string[] args)

{

int i;

for (i = 0; i < 12; i++) Console.WriteLine("#");

for (i = 0; i < 10; i++) Console.Write("#");

for (i = 0; i < 12; i++) Console.WriteLine("#");

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 25; i++)

{

Console.WriteLine("#");

if (i == 12) for (j = 0; j < 12; j++) Console.Write("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 158: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

128

б) фигура вида ┤

Вариант № 1

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 12; i++)

{

for (j = 0; j < 10; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 12; i++)

{

for (j = 0; j < 10; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 25; i++)

{

for (j = 0; j < 10; j++) Console.Write(" ");

Console.WriteLine("#");

if (i == 12)

{

for (j = 0; j < 11; j++) Console.Write("#");

Console.WriteLine();

}

}

Console.ReadKey();

}

Результат прогона программы:

Page 159: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

129

в) фигура вида ┬

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 25; i++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 15; i++)

{ for (j = 0; j < 11; j++)

Console.Write(" ");

Console.WriteLine("#"); }

Console.ReadKey();

}

Результат прогона программы:

Page 160: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

130

г) фигура вида ┴

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 15; i++)

{

for (j = 0; j < 11; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 25; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

3. Вывести на экран одну из фигур вида: ╒ ╓ ╔ ╕ ╖ ╗╘ ╙ ╚ ╛ ╜ ╝ ╞

╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ .

а) фигура вида ╒

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 15; i++)

{

Console.Write("#");

if ((i == 0) || (i == 3))

for (j = 0; j < 9; j++)

Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

Page 161: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

131

}

Результат прогона программы:

б) фигура вида ╓

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 10; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 12; i++)

{

Console.WriteLine("# #");

}

Console.ReadKey();

}

Результат прогона программы:

Page 162: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

132

в) фигура вида ╔

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 10; j++) Console.Write("#");

Console.WriteLine();

for (j = 0; j < 2; j++) Console.WriteLine("#");

Console.Write("# ");

for (j = 0; j < 7; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 9; i++) Console.WriteLine("# #");

Console.ReadKey();

}

Результат прогона программы:

г) фигура вида ╕

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 15; i++)

{

for (j = 0; j < 9; j++)

if ((i == 0) || (i == 3)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

Page 163: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

133

}

Результат прогона программы:

д) фигура вида ╖

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 12; i++)

{

for (j = 0; j < 6; j++) Console.Write(" ");

Console.WriteLine("# #");

}

Console.ReadKey();

}

Результат прогона программы:

Page 164: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

134

е) фигура вида ╗

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 10; j++) Console.Write("#");

Console.WriteLine();

for (j = 0; j < 9; j++) Console.Write(" ");

Console.WriteLine("#");

for (j = 0; j < 8; j++) Console.Write("#");

Console.WriteLine(" #");

for (i = 0; i < 12; i++)

{ for (j = 0; j < 7; j++) Console.Write(" ");

Console.WriteLine("# #"); }

Console.ReadKey();

}

Результат прогона программы:

Page 165: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

135

ж) фигура вида ╘

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 15; i++)

{

Console.Write("#");

if ((i == 12) || (i == 14))

for (j = 0; j < 9; j++)

Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

з) фигура вида ╙

static void Main(string[] args)

{

Page 166: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

136

int i;

for (i = 0; i < 12; i++) Console.WriteLine("# #");

for (i = 0; i < 9; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

и) фигура вида ╚

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++) Console.WriteLine("# #");

Console.Write("# ");

for (j = 0; j < 7; j++) Console.Write("#");

Console.WriteLine();

for (j = 0; j < 2; j++) Console.WriteLine("#");

for (j = 0; j < 10; j++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 167: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

137

й) фигура вида ╛

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 15; i++)

{

for (j = 0; j < 9; j++)

if ((i == 11) || (i == 14)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

к) фигура вида ╜

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 12; i++)

{

for (j = 0; j < 6; j++) Console.Write(" ");

Console.WriteLine("# #");

}

for (i = 0; i < 9; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 168: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

138

л) фигура вида ╝

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 12; i++)

{ for (j = 0; j < 7; j++) Console.Write(" ");

Console.WriteLine("# #"); }

for (j = 0; j < 8; j++) Console.Write("#");

Console.WriteLine(" #");

for (j = 0; j < 9; j++) Console.Write(" ");

Console.WriteLine("#");

for (j = 0; j < 10; j++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 169: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

139

м) фигура вида ╞

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 17; i++)

{

Console.WriteLine("#");

if ((i == 6) || (i == 8))

for (j = 0; j < 8; j++) Console.Write("#");

}

Console.ReadKey();

}

Результат прогона программы:

н) фигура вида ╟

static void Main(string[] args)

{

Page 170: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

140

int i, j;

for (i = 0; i < 16; i++)

{

Console.WriteLine("# #");

if (i == 7)

{

Console.Write("# #");

for (j = 0; j < 8; j++) Console.Write("#");

Console.WriteLine();

}

}

Console.ReadKey();

}

Результат прогона программы:

о) фигура вида ╠

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 6; i++) Console.WriteLine("# #");

Console.Write("# #");

for (j = 0; j < 6; j++) Console.Write("#");

Console.WriteLine();

Console.WriteLine("#");

Console.Write("# #");

for (j = 0; j < 6; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 6; i++) Console.WriteLine("# #");

Page 171: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

141

Console.ReadKey();

}

Результат прогона программы:

п) фигура вида ╡

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 16; i++)

{

for (j = 0; j < 7; j++) Console.Write(" ");

Console.WriteLine("#");

if ((i == 6) || (i == 8))

{

for (j = 0; j < 8; j++) Console.Write("#");

Console.WriteLine();

}

}

Console.ReadKey();

}

Результат прогона программы:

Page 172: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

142

р) фигура вида ╢

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 16; i++)

{

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("# #");

if (i == 7)

{

for (j = 0; j < 5; j++) Console.Write("#");

Console.WriteLine("# #");

}

}

Console.ReadKey();

}

Результат прогона программы:

Page 173: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

143

с) фигура вида ╣

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 16; i++)

{

for (j = 0; j < 7; j++) Console.Write(" ");

if ((i < 7) || (i > 8)) Console.WriteLine("# #");

else Console.WriteLine(" #");

if ((i == 6) || (i == 8))

{

for (j = 0; j < 7; j++) Console.Write("#");

Console.WriteLine("# #");

}

}

Console.ReadKey();

}

Результат прогона программы:

Page 174: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

144

т) фигура вида ╤

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine(); Console.WriteLine();

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 5; i++)

{ for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#"); }

Console.ReadKey();

}

Результат прогона программы:

Page 175: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

145

у) фигура вида ╥

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4; j++) Console.Write(" ");

Console.WriteLine("# #");

}

Console.ReadKey();

}

Результат прогона программы:

ф) фигура вида ╦

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine(); Console.WriteLine();

for (i = 0; i < 11; i++)

if (i != 5) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4; j++) Console.Write(" ");

Console.WriteLine("# #");

}

Console.ReadKey();

}

Результат прогона программы:

Page 176: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

146

х) фигура вида ╧

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 5; i++)

{

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine(); Console.WriteLine();

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine();

Console.ReadKey();

}

Результат прогона программы:

ц) фигура вида ╨

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4; j++) Console.Write(" ");

Console.WriteLine("# #");

}

Page 177: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

147

for (i = 0; i < 11; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

ч) фигура вида ╩

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4; j++) Console.Write(" ");

Console.WriteLine("# #");

}

for (i = 0; i < 11; i++) Console.Write("#");

Console.WriteLine(); Console.WriteLine();

for (i = 0; i < 11; i++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

ш) фигура вида ╪

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 15; i++)

{

Page 178: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

148

for (j = 0; j < 7; j++) Console.Write(" ");

Console.WriteLine("#");

if ((i == 6) || (i == 7))

{

for (j = 0; j < 15; j++) Console.Write("#");

Console.WriteLine();

}

}

Console.ReadKey();

}

Результат прогона программы:

щ) фигура вида ╫

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 16; i++)

{

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("# #");

if (i == 7)

{

for (j = 0; j < 13; j++) Console.Write("#");

Console.WriteLine();

}

}

Console.ReadKey();

}

Page 179: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

149

Результат прогона программы:

ъ) фигура вида ╬

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4; j++) Console.Write(" ");

Console.WriteLine("# #"); }

for (i = 0; i < 11; i++)

if (i != 5) Console.Write("#");

else Console.Write(" ");

Console.WriteLine(); Console.WriteLine();

for (i = 0; i < 11; i++)

if (i != 5) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4; j++) Console.Write(" ");

Console.WriteLine("# #");

}

Console.ReadKey();

}

Результат прогона программы:

Page 180: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

150

4. Вывести на экран прямоугольник вида ■ █ ▌, заполненный

символами.

static void Main(string[] args)

{

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

static void Main(string[] args)

{

for (int i = 0; i < 16; i++)

{

for (int j = 0; j < 16; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Page 181: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

151

Результат прогона программы:

static void Main(string[] args)

{

for (int i = 0; i < 16; i++)

{

for (int j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 182: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

152

5. Вывести на экран прямоугольник вида □, обрамленный символами

и пустой внутри.

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 16; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 16; i++)

{

Console.Write("#");

for (j = 0; j < 14; j++) Console.Write(" ");

Console.Write("#");

Console.WriteLine();

}

for (j = 0; j < 16; j++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 183: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

153

5.4.2 Основные задания

Page 184: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

154

Page 185: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

155

Page 186: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

156

Page 187: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

157

Page 188: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

158

5.5 Циклическая структура. Тема № 3. Вывод наклонных линий

5.5.1 Подготовительные задания

1. Вывести на экран наклонную линию (/) из 9 символов.

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++)

Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

2. Вывести на экран наклонную линию (\) из 8 символов.

static void Main(string[] args)

{

for (int i = 0; i < 8; i++)

{

for (int j = 0; j < i; j++)

Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Page 189: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

159

Результат прогона программы:

3. Вывести на экран угол вида ˂ ˃ ˄ ˅, образованных сочетанием двух

наклонных линий.

а) угол вида ˂

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 1; i < 9; i++)

{ for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 190: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

160

б) угол вида ˃

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 1; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

в) угол вида ˄

Вариант № 1

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Page 191: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

161

for (j = 1; j < i; j++) Console.Write(" ");

if (i != 0) Console.WriteLine("#");

}

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{ for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 2*i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) угол вида ˅

Вариант № 1

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 8-i; j++) Console.Write(" ");

for (j = 1; j < 8-i; j++) Console.Write(" ");

if (i != 8) Console.WriteLine("#");

}

Page 192: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

162

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 16 - 2 * i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

4. Вывести на экран 2-3 разновидности острых или тупых углов,

образованных сочетанием наклонных, горизонтальных и вертикальных

линий.

Острые углы.

а) острый угол вида

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

Page 193: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

163

}

Console.ReadKey();

}

Результат прогона программы:

б) острый угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

Console.ReadKey();

}

Результат прогона программы:

в) острый угол вида

Page 194: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

164

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) острый угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 8 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 195: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

165

г) острый угол вида

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

д) острый угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

Page 196: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

166

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 9; j++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

е) острый угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

Console.Write("#");

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

ж) острый угол вида

static void Main(string[] args)

Page 197: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

167

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Тупые углы.

а) тупой угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 9; j++) Console.Write(" ");

for (j = 0; j < 9; j++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 198: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

168

б) тупой угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++) Console.Write("#");

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

for (j = 0; j < 9; j++) Console.Write(" ");

}

Console.ReadKey();

}

Результат прогона программы:

в) тупой угол вида

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 9; j++) Console.Write(" ");

for (j = 0; j < 9; j++) Console.Write("#");

Page 199: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

169

Console.WriteLine();

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) тупой угол вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < 9; j++) Console.Write(" ");

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 9; j++) Console.Write("#");

Console.ReadKey();

}

Результат прогона программы:

Page 200: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

170

5. Вывести на экран прямоугольный треугольник:

i) заполненный символами,

ii) обрамленный символами и пустой внутри.

i) прямоугольный треугольник, заполненный символами.

а) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 8; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

б) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Page 201: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

171

Результат прогона программы:

в) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

Page 202: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

172

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9-i; j < 9; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

ii) прямоугольный треугольник, обрамленный символами.

а) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 8; j++)

if ((i>0) && (i<8) && (j>i-1) && (j<7))

Console.Write(" ");

else Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 203: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

173

б) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++)

if ((i > 2) && (i < 8) && (j > 0) && (j < i-1))

Console.Write(" ");

else Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

в) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 9; j++) Console.Write("#");

Console.WriteLine();

Page 204: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

174

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) прямоугольный треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9; j++)

if ((i > 1) && (i < 8) && (j > 9 - i) && (j < 9))

Console.Write(" ");

else Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 205: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

175

6. Вывести на экран треугольник вида ▲ ► ▼ ◄ :

i) заполненный символами,

ii) обрамленный символами и пустой внутри.

i) треугольник, заполненный символами

а) треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9+i; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

б) треугольник вида

Page 206: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

176

static void Main(string[] args)

{

int i, j;

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write("#");

Console.WriteLine();

}

for (i = 0; i < 9; i++)

{

for (j = 1; j < 8-i; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

в) треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 16-i; j++) Console.Write("#");

Console.WriteLine();

Page 207: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

177

}

Console.ReadKey();

}

Результат прогона программы:

г) треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9; j++) Console.Write("#");

Console.WriteLine("#");

}

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 8; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 208: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

178

ii) треугольник, обрамленный символами и пустой внутри

а) треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9 + i; j++)

if ((j==9-i) || (i==8)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 209: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

179

б) треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++)

if ((j == 0) || (j == i - 1)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

}

for (i = 0; i < 9; i++)

{

for (j = 1; j < 8 - i; j++)

if ((j == 1) || (j == 7 - i)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 210: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

180

в) треугольник вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 16 - i; j++)

if ((j == 15 - i) || (i == 0)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

г) треугольник вида

static void Main(string[] args)

{

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9; j++)

if (j == 9 - i) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

for (i = 1; i < 9; i++)

Page 211: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

181

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 8; j++)

if (j == 7) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

7. Вывести на экран параллелограмм, трапецию или ромб, пустой или

заполненный символами.

а) Параллелограмм, заполненный символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 18 - i; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

Page 212: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

182

}

Результат прогона программы:

б) Параллелограмм, заполненный символами вида

static void Main(string[] args)

{

int i, j;

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 8+i; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

в) Параллелограмм, обрамленный символами и пустой внутри вида

static void Main(string[] args)

{

int i, j;

Page 213: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

183

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 18 - i; j++)

if ((i == 0) || (i == 8) || (j==9-i))

Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) Параллелограмм, обрамленный символами и пустой внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 1; i < 9; i++)

{

for (j = 1; j < i; j++) Console.Write(" ");

for (j = i; j < 8 + i; j++)

if ((i == 1) || (i == 8) || (j==i))

Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Page 214: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

184

Результат прогона программы:

д) Трапеция, заполненная символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 18 + i; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

е) Трапеция, заполненная символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

for (j = i; j < 24 - i; j++) Console.Write("#");

Console.WriteLine("#");

Page 215: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

185

}

Console.ReadKey();

}

Результат прогона программы:

ж) Трапеция, заполненная символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 20; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

з) Трапеция, заполненная символами вида

static void Main(string[] args)

{

int i, j;

Page 216: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

186

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

for (j = 0; j < 15 - i; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

и) Трапеция, заполненная символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < 10+i; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 217: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

187

й) Трапеция, заполненная символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < 15 - i; j++) Console.Write("#");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

к) Трапеция, обрамленная символами и пустая внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

if ((i == 0) || (i == 8))

for (j = 9 - i; j < 18 + i; j++) Console.Write("#");

else

{

Console.Write("#");

for (j = 10 - i; j < 18 + i; j++) Console.Write(" ");

}

Console.WriteLine("#");

}

Console.ReadKey();

Page 218: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

188

}

Результат прогона программы:

л) Трапеция, обрамленная символами и пустая внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

for (j = i; j < 24 - i; j++)

if ((j==i) || (i==0) || (i==8)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

м) Трапеция, обрамленная символами и пустая внутри вида

static void Main(string[] args)

{

int i, j;

Page 219: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

189

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 20; j++)

if ((i == 0) || (i == 8) || (j == 9 - i)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

н) Трапеция, обрамленная символами и пустая внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

for (j = 0; j < 15 - i; j++)

if ((j == 0) || (i == 0) || (i == 8)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 220: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

190

о) Трапеция, обрамленная символами и пустая внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < 10 + i; j++)

if((i==0) || (i==8) || (j==0)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

п) Трапеция, обрамленная символами и пустая внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 0; j < 15 - i; j++)

Page 221: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

191

if ((i == 0) || (i == 8) || (j == 0))

Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

р) Ромб, заполненный символами вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9 + i; j++) Console.Write("#");

Console.WriteLine("#");

}

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

for (j = i-1; j < 16 - i; j++) Console.Write("#");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 222: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

192

р) Ромб, пустой внутри вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 9; i++)

{

for (j = 1; j < 9 - i; j++) Console.Write(" ");

for (j = 9 - i; j < 9 + i; j++)

if (j == 9-i) Console.Write("#");

else Console.Write(" ");

Console.WriteLine("#");

}

for (i = 1; i < 9; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

for (j = i - 1; j < 16 - i; j++)

if ((j==i-1) || (j == 15 - i)) Console.Write("#");

else Console.Write(" ");

Console.WriteLine();

}

Console.ReadKey();

}

Результат прогона программы:

Page 223: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

193

8. Специальные символы.

Вывести на экран один из специальных символов вида

↕ а) специальный символ вида

static void Main(string[] args)

{

int i, j;

for (i = 0; i < 5; i++)

{

for (j = 0; j < 5 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 20; j++) Console.Write("#");

Console.WriteLine("#");

for (i = 1; i < 6; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Page 224: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

194

Результат прогона программы:

б) специальный символ вида static void Main(string[] args)

{

int i, j;

for (i = 1; i < 6; i++)

{

for (j = 0; j < 15 + i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 21; j++) Console.Write("#");

Console.WriteLine("#");

for (i = 0; i < 5; i++)

{

for (j = 0; j < 20 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 225: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

195

в) специальный символ вида static void Main(string[] args)

{

int i, j;

for (i = 0; i < 4; i++)

{

for (j = 0; j < 4 - i; j++) Console.Write(" ");

Console.Write("#");

for (j = 4 - i; j < 21 + i; j++)

Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 26; j++) Console.Write("#");

Console.WriteLine("#");

for (i = 1; i < 5; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = i; j < 25 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

г) специальный символ вида

Page 226: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

196

static void Main(string[] args)

{

int i, j;

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4 - i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 10; i++)

{

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

}

Console.ReadKey();

}

Результат прогона программы:

Page 227: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

197

д) специальный символ вида static void Main(string[] args)

{

int i, j;

for (i = 0; i < 10; i++)

{

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 5; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 4-i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 4 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

Console.ReadKey();

}

Результат прогона программы:

Page 228: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

198

е) специальный символ вида ↕ static void Main(string[] args)

{

int i, j;

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

for (i = 0; i < 5; i++)

{

for (j = 0; j < 4 - i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 10; i++)

{

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (i = 0; i < 5; i++)

{

for (j = 0; j < i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 4-i; j++) Console.Write(" ");

Console.Write("#");

for (j = 0; j < 4 - i; j++) Console.Write(" ");

Console.WriteLine("#");

}

for (j = 0; j < 5; j++) Console.Write(" ");

Console.WriteLine("#");

Page 229: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

199

Console.ReadKey();

}

Результат прогона программы:

Page 230: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

200

5.5.2 Основные задания

Page 231: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

201

Page 232: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

202

Page 233: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

203

Page 234: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

204

Page 235: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

205

Page 236: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

206

5.6 Циклическая структура. Тема № 4. Стандартные задания

5.6.1 Пример программы расчета суммы ряда

Написать программу расчета, используя оператор цикла for для

расчета суммы ряда.

15

1 !

1

i ii

iS

Здесь s=s1+s2+…s15, ii

isi

!

1;

а i! (читается i факториал) - все числа, перемноженные от одного до

i, i! = 1*2*3*…*(i-1)*i .

// программа циклической структуры для расчета суммы ряда

static void Main(string[] args)

{

Double s, y; int i;

s = 0; // вводим начальное значение для суммы ряда

y = 1; // начальное значение для вычисления факториала i!

// начало цикла. Переменная i изменяется от 1 до 15 с шагом 1

for (i = 1; i <= 15; i++)

{ // здесь i++ означает i = i + 1

y = y * i; // вычисляем значения факториала y

// в переменной S накапливается значение суммы ряда

s = s + (i + 1) / (y + Math.Sqrt(i));

}

Console.WriteLine("s=" + s); //значение суммы ряда выводится на экран

Console.ReadKey();

}

Page 237: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

207

5.6.2 Стандартные задания

1. Вычислить сумму ряда при М=15; Х=0,63; S=0,697346848995981.

S=

M

n n

n

en

Xarctgn

nX

1 )(!

))1(1(ln

2. Вычислить сумму ряда при М=16; Х=13,9; S=3112099,18899483.

S=

M

nn

Xnn

nnX

n

XenXn

1 !)ln()1(

)cos(

3. Вычислить сумму ряда при М=12; Х=0,54; S=90,1591936221826.

S=

M

n

nn

Xnn

X

Xntge

1 2 !)(sinln

))()(1)1((

4. Вычислить сумму ряда при М=19; Х=23,94; S=0,130849464884802.

S=

M

n n

n

Xarctge

n

Xnn

1

2 cosln)!(sin

5. Вычислить сумму ряда при М=18; Х=-3,37; S=1,94293785363179.

S=

M

n

nn Xarctgn1

)!ln())2ln((

6. Вычислить сумму ряда при М=15; Х=1000,7;

S=0,921491305579878.

S=

M

n

n

n

n

X

1 !

coslnln

)1)1((

7. Вычислить сумму ряда при М=17; Х=0,3; S=0,31380168987769.

S=

M

n

nn

Xtg

Xne

n

n

1

3

)(

)sin()1)1(()

12

2(

8. Вычислить сумму ряда при М=8; Х=20; S=0,0127560167173928.

S=

M

n

n

nnnn

n

Xarctgen

12 )1ln(!)3(

!cos

9. Вычислить сумму ряда при М=10; Х=7,5; S=-0,474311426812753.

S=

M

n

nn

nXnn

ne

n

Xtg

1 !

))1(1(!ln)

cos

sin(

10. Вычислить сумму ряда при М=19; Х=2,5; S=0,020168586765763.

Page 238: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

208

S=

M

n

nn

XnnnXn

n

ne

12 )cos)((

2

1cos)1ln(

11. Вычислить сумму ряда при М=10; Х=4; S=12,2503730686875.

S=

M

n

X

X

X

n

n

nn

tgne

14

cos

cos

ln

1

!

12. Вычислить сумму ряда при М=11; Х=9,32; S=-2,78439423212793.

S=

M

n

n

nXnn

en

1 cos3!

))ln(ln(

13. Вычислить сумму ряда при М=11; Х=55; S=523736,636382686.

S=

M

n

nnn

nnXtgn

Xnarctge

1

ln

)!3)(3()1)!

1ln(cos(

)(

14. Вычислить сумму ряда при М=13; Х=26; S=6,63264184229042.

S=

M

nn

n

Xnnn

n

1 sin1

)))2!ln(ln(ln()1)1((

15. Вычислить сумму ряда при М=10; Х=-22,8; S=-1,020718582516.

S=

M

n

nXn

nnnn

n

Xe

1

1

!cos)1ln()12(

3!sin)1(

16. Вычислить сумму ряда при М=7; Х=5,7; S=0,174770368268743.

S=

M

n

n

n

XnnX

ennn

Xtg

1

)1()ln()!(

17. Вычислить сумму ряда при М=14; Х=1; S=0,075495527097007.

S=

M

n

n

nXXn

n

Xtgen

1 )ln()!(

!

18. Вычислить сумму ряда при М=7; Х=13; S=0,194287289954729.

S=

M

n

X

nn

nX

ntgnX

1cos)!ln(

)()sin(

19. Вычислить сумму ряда при М=7; Х=20; S=4,82623603894043.

S=

M

n n

tgn

n

XnXn

enne

1 cos))!ln(ln(

)ln(sin

Ответы на задания темы: Циклическая структура. Тема № 4.

Стандартные задания смотрите на странице 282.

Page 239: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

209

5.7 Циклическая структура. Тема № 5. Простые нестандартные

задания

5.7.1 Подготовительные задания

Двузначные числа

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

зачеркивании в них последней цифры. Ответ: 12, 24, 36, 48.

static void Main(string[] args)

{

for (int i = 10; i <= 99; i++)

if (i / 12 == i / 10) Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 10;

while (i <= 99)

{

if (i / 12 == i / 10) Console.WriteLine(i);

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 10;

do

{

if (i / 12 == i / 10) Console.WriteLine(i);

i++;

} while (i <= 99);

Console.ReadKey();

}

2. Найдите двузначное число, равное сумме числа его десятков и

квадрата числа единиц. Ответ: 89.

Page 240: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

210

Вариант 1.

static void Main(string[] args)

{

for (int i = 1; i <= 9; i++)

for (int j = 0; j <= 9; j++)

if (10 * i + j == i + j * j) Console.WriteLine(10 * i + j);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 1, j;

while (i <= 9)

{

j = 0;

while (j <= 9)

{

if (10 * i + j == i + j * j) Console.WriteLine(10 * i + j);

j++;

}

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 1, j;

do

{

j = 0;

do

{

if (10*i+j==i+j*j) Console.WriteLine(10*i+j);

j++;

} while (j <= 9)

i++;

} while (i <= 9);

Console.ReadKey();

}

Page 241: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

211

3. Найти двузначное число, равное квадрату числа его единиц,

сложенному с кубом числа его десятков. Ответ: 24.

Вариант 1.

static void Main(string[] args)

{

int i, a, b;

for (i = 10; i < 100; i++)

{

a = i / 10; // a – число десятков двузначного числа i

b = i % 10; // b – число единиц двузначного числа i

if (i == a * a * a + b * b) break;

}

Console.WriteLine(i);

Console.ReadKey();

}

Вариант 2.

static void Main(string[] args)

{

for (int i = 10; i < 100; i++)

if (i == (i / 10) * (i / 10) * (i / 10) + (i % 10) * (i % 10))

{

Console.WriteLine(i); break;

}

Console.ReadKey();

}

Вариант 3.

static void Main(string[] args)

{

int a = 1, b = 0;

for (int i = 10; i < 100; i++, a = i / 10, b = i % 10)

if (i == a * a * a + b * b)

{

Console.WriteLine(i); break;

}

Console.ReadKey();

}

static void Main(string[] args)

{

Page 242: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

212

int i = 10, a = 1, b = 0;

while (i != a * a * a + b * b)

{

i++;

a = i / 10; // a – число десятков двузначного числа i

b = i % 10; // b – число единиц двузначного числа i

}

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 9, a = 1, b = 0;

do

{

i++;

a = i / 10; // a – число десятков двузначного числа i

b = i % 10; // b – число единиц двузначного числа i

} while (i != a * a * a + b * b);

Console.WriteLine(i);

Console.ReadKey();

}

4. Найти двузначное число, равное удвоенному произведению его цифр.

Ответ: 36.

Вариант 1.

static void Main(string[] args)

{

int i, a, b;

for (i = 10; i < 100; i++)

{

a = i / 10; // a – число десятков двузначного числа i

b = i % 10; // b – число единиц двузначного числа i

if (i == 2 * a * b) break;

}

Console.WriteLine(i);

Console.ReadKey();

}

Page 243: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

213

Вариант 2.

static void Main(string[] args)

{

for (int i = 10; i < 100; i++)

if (i == 2 * (i / 10) * (i % 10))

{

Console.WriteLine(i); break;

}

Console.ReadKey();

}

Вариант 3.

static void Main(string[] args)

{

int a = 1, b = 0;

for (int i = 10; i < 100; i++, a = i / 10, b = i % 10)

if (i == 2 * a * b)

{

Console.WriteLine(i); break;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 10, a = 1, b = 0;

while (i != 2 * a * b)

{

i++;

a = i / 10; // a – число десятков двузначного числа i

b = i % 10; // b – число единиц двузначного числа i

}

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 9, a = 1, b = 0;

do

Page 244: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

214

{

i++;

a = i / 10; // a – число десятков двузначного числа i

b = i % 10; // b – число единиц двузначного числа i

} while (i != 2 * a * b);

Console.WriteLine(i);

Console.ReadKey();

}

5. Найти все двузначные числа, которые на 9 больше суммы

квадратов их цифр. Ответ: 10, 11, 34, 74, 90, 91.

Вариант № 1

static void Main(string[] args)

{

for (int i = 1; i <= 9; i++)

for (int j = 0; j <= 9; j++)

if (10 * i + j == i * i + j * j + 9) Console.WriteLine(10 * i + j);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

for (int i = 10; i <= 99; i++)

if (i - 9 == (i / 10) * (i / 10) + (i % 10) * (i % 10))

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 10;

while (i <= 99)

{

if (i - 9 == (i / 10) * (i / 10) + (i % 10) * (i % 10))

Console.WriteLine(i);

i++;

}

Console.ReadKey();

}

Page 245: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

215

static void Main(string[] args)

{

int i = 10;

do

{

if (i - 9 == (i / 10) * (i / 10) + (i % 10) * (i % 10))

Console.WriteLine(i);

i++;

} while (i <= 99);

Console.ReadKey();

}

6. Найдите все такие двухзначные числа, которые делятся на каждую

из цифр в их записи. Сколько их? Ответ: 14.

Вариант № 1

static void Main(string[] args)

{

int i, a, b, k = 0;

for (i = 10; i <= 99; i++)

{

a = i / 10;

b = i % 10;

if ((b != 0) && (i % a == 0) && (i % b == 0)) k++;

}

Console.WriteLine(k);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int k = 0;

for (int i = 1; i <= 9; i++)

for (int j = 1; j <= 9; j++)

if (((10 * i + j) % i == 0) && ((10 * i + j) % j == 0)) k++;

Console.WriteLine(k);

Console.ReadKey();

Page 246: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

216

}

7. Найдите все двузначные числа, в целое число раз большие

произведения своих цифр. Ответ: 11, 12, 15, 24, 36.

Вариант № 1

static void Main(string[] args)

{

for (int i = 1; i <= 9; i++)

for (int j = 1; j <= 9; j++)

if ((i * 10 + j) % (i * j) == 0)

Console.WriteLine(i * 10 + j);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b;

for (int i = 10; i <= 99; i++)

{

a = i / 10;

b = i % 10;

if ((a * b != 0) && (i % (a * b) == 0)) Console.WriteLine(i);

}

Console.ReadKey();

}

Вариант № 3

static void Main(string[] args)

{

for (int i = 10; i <= 99; i++)

if ((i % 10 != 0) && (i % ((i / 10) * (i % 10)) == 0))

Console.WriteLine(i);

Console.ReadKey();

}

8. Сколько двузначных чисел в сумме с этим же числом, записанными

цифрами в обратном порядке, дают полный квадрат? Ответ: 8.

Вариант № 1

Page 247: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

217

static void Main(string[] args)

{

int k = 0;

for (int i = 4; i < 15; i++)

for (int a = 1; a <= 9; a++)

for (int b = 1; b <= 9; b++)

if (10 * a + b + 10 * b + a == i * i) k++;

Console.WriteLine(k);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int k = 0;

for (int i = 4; i < 15; i++)

for (int j = 11; j <= 99; j++)

if (j + (j % 10) * 10 + j / 10 == i * i) k++;

Console.WriteLine(k);

Console.ReadKey();

}

Трехзначные числа.

9. Цифру 9 из начала трехзначного числа перенесли в его конец.

Получили число на 216 меньше. Найти это число. Ответ: 975.

static void Main(string[] args)

{

for (int i = 900; i <= 999; i++)

if (i - 216 == (i % 100) * 10 + 9) Console.WriteLine(i);

Console.ReadKey();

}

10. Если к двузначному числу приписать 6 справа, а 1 слева, то первое

трехзначное число будет в 3 раза больше второго. Чему равно двузначное

число? Ответ: 42.

Вариант 1.

static void Main(string[] args)

{

Page 248: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

218

int i, a, b;

for (i = 10; i < 100; i++)

{

a = i * 10 + 6; // a – первое трехзначное число

b = i + 100; // b – второе трехзначное число

if (a == 3 * b) break;

}

Console.WriteLine(i);

Console.ReadKey();

}

Вариант 2.

static void Main(string[] args)

{

for (int i = 10; i < 100; i++)

if (i * 10 + 6 == 3 * (i + 100))

{

Console.WriteLine(i); break;

}

Console.ReadKey();

}

Вариант 3.

static void Main(string[] args)

{

int a = 106, b = 110;

for (int i = 10; i < 100; i++, a = i * 10 + 6, b = i + 100)

if (a == 3 * b)

{

Console.WriteLine(i); break;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 10, a = 106, b = 110;

while (a != 3 * b)

{

i++;

a = i * 10 + 6; // a – первое трехзначное число

Page 249: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

219

b = i + 100; // b – второе трехзначное число

}

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 10, a = 106, b = 110;

do

{

i++;

a = i * 10 + 6; // a – первое трехзначное число

b = i + 100; // b – второе трехзначное число

} while (a != 3 * b);

Console.WriteLine(i);

Console.ReadKey();

}

11. Цифру 7 из начала трехзначного числа перенесли в его конец.

Получили число на 117 меньше. Найти это число. Ответ: 764.

static void Main(string[] args)

{

for (int i = 700; i <= 799; i++)

if (i - 117 == (i % 100) * 10 + 7) Console.WriteLine(i);

Console.ReadKey();

}

12. Посчитать количество трехзначных чисел, сумма цифр которых

равна 20. Ответ: 36.

Вариант № 1

static void Main(string[] args)

{

int a, b, c, k = 0;

for (a = 1; a <= 9; a++)

for (b = 0; b <= 9; b++)

for (c = 0; c <= 9; c++)

if (a + b + c == 20) k++;

Console.WriteLine(k);

Console.ReadKey();

Page 250: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

220

}

Вариант № 2

static void Main(string[] args)

{

int k = 0;

for (int i = 100; i <= 999; i++)

if (i / 100 + (i / 10) % 10 + i % 10 == 20) k++;

Console.WriteLine(k);

Console.ReadKey();

}

Четырехзначные числа

13. Сколько существует натуральных четырехзначных чисел, цифры

в которых образуют строго возрастающую последовательность? Ответ:

126.

static void Main(string[] args)

{

int k = 0;

for (int a = 1; a <= 9; a++)

for (int b = 0; b <= 9; b++)

for (int c = 0; c <= 9; c++)

for (int d = 0; d <= 9; d++)

if ((a < b) && (b < c) && (c < d)) k++;

Console.WriteLine(k);

Console.ReadKey();

}

Многоразрядные числа

14. Ввести с клавиатуры натуральное многоразрядное число

(количество разрядов < 20). Вывести на экран это число так, чтобы его

цифры шли в обратном порядке.

static void Main(string[] args)

{

ulong n;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

Page 251: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

221

for (; n != 0; n /= 10) Console.Write(n % 10);

Console.ReadKey();

}

static void Main(string[] args)

{

ulong n;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

while (n != 0)

{

Console.Write(n % 10);

n = n / 10;

}

Console.ReadKey();

}

static void Main(string[] args)

{

ulong n;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

do

{

Console.Write(n % 10);

n = n / 10;

} while (n != 0);

Console.ReadKey();

}

Page 252: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

222

5.7.2 Основные задания

1. Сколько существует пар двузначных чисел, таких, что, сложив первое

число с суммой цифр второго числа, получим 100, и сложив второе число

с суммой цифр первого числа, получим 100? Ответ: 4.

2. Число Армстронга – такое число из К цифр, для которого сумма К-х

степеней его цифр равна самому числу. Например, 153=13+53+33. Найти

все числа Армстронга из трех цифр. Ответ: 153, 370, 371, 407.

3. Найти все четырехзначные числа, оканчивающиеся на 91, которые после

вычеркивания этих цифр уменьшаются в целое число раз. Ответ: 1391,

9191.

4. Четырехзначное число считается счастливым, если сумма его первых

двух цифр равна сумме последних двух цифр. По другой версии,

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

второй половины равна 100. Найти все 4-значные числа, счастливые

одновременно и в том, и в другом смысле. Ответ: 5050.

5. Найти четырехзначное число, которое увеличивается в 4 раза при

перестановке его цифр в обратном порядке. Ответ: 2178.

6. Сколько существует четырехзначных чисел, таких, что если из него

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

получится куб натурального числа? Ответ: 126.

7. У «счастливых» шестизначных билетов сумма первых трех цифр равна

сумме последних трех цифр. Сколько их? Ответ: 55252.

8. Вывести на экран среднее арифметическое цифр натурального

многоразрядного числа (количество разрядов <20). Проверить для

5498071. Ответ: 4,85714285714286.

9. Вывести на экран среднее геометрическое цифр натурального

многоразрядного числа (количество разрядов <20). Проверить для 186612.

Ответ: 2,88449914061482.

10. Вместо звездочки поставьте цифру так, чтобы полученное из 19*83

число стало точным кубом. Ответ: 6.

11. Найти наименьшее натуральное число A, такое, что A*2 - квадрат, а

A*3 – куб целого числа. Ответ: 72.

12. Найти наименьший полный квадрат, не оканчивающийся двумя

нулями, такой, что после вычеркивания двух его последних цифр

получается снова полный квадрат. Ответ: 121.

13. Моему знакомому в x2 году исполнится x лет. В каком году это

произойдет? Ответ: 2025.

Page 253: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

223

14. Любое натуральное число Р (Р>7) можно представить в виде

Р=3*А+5*В. Сколько пар А и В существует для Р=2867? Ответ: 191.

15. Год високосный, если его номер делится на 4, за исключением тех,

которые делятся на 100 и не делятся на 400. Сколько високосных годов

было между 1000 и 2000 годами? Ответ: 243.

16. Написать программу для расчета числа сочетаний )!(!

!

mnm

nСm

n

Проверить для m=3, n=6. Ответ: 20.

Ответы на основные задания темы: Циклическая структура. Тема

№ 5. Простые нестандартные задания смотрите на странице 311.

Page 254: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

224

5.8 Циклическая структура. Тема № 6. Нестандартные задания

5.8.1 Подготовительные задания

1. Найти наименьшее число, которое делится на натуральные a и b

нацело. Проверить для a=172, b=204. (8772)

static void Main(string[] args)

{

int i, a, b;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

// в качестве начального значения для i можно взять любое из

чисел a и b

for (i = a; i <= a * b; i++)

if ((i % a == 0) && (i % b == 0)) break;

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i, a, b;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i = a;

while ((i % a != 0) || (i % b != 0)) i++;

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i, a, b;

Page 255: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

225

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i = a;

do i++; while ((i % a != 0) || (i % b != 0));

Console.WriteLine(i);

Console.ReadKey();

}

2. Найдите число, равное утроенной сумме своих цифр. (27)

static void Main(string[] args)

{

for (int i = 10; i <= 99; i++)

if (i == 3 * (i / 10 + i % 10)) { Console.WriteLine(i); break; }

Console.ReadKey();

}

Page 256: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

226

5.8.2 Основные задания

1. Найти наименьшее число, которое больше 2016 и делится на все

числа от 1 до 9. (2520)

2. Пересчитать все простые числа от 1 до 100. (26)

3. Найти все натуральные числа, меньшие 100, равные квадрату числа

всех своих делителей. (1 считать делителем, само число - нет) (4, 16)

4. Вывести на экран все делители натурального числа n, являющиеся

простыми числами. Проверить для числа 113256. (2, 2, 2, 3, 3, 11, 11, 13)

5. Для двух натуральных p и q определить, являются ли они взаимно

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

общих делителей, кроме 1. Проверить для p=28679, q=36873. (не

являются, делитель 17)

6. Дана дробь m/n, где m, n – натуральные числа. Найти p, q – такие,

что p/q – несократимая дробь и p/q=m/n. Проверить для m=57990,

n=68010. (1933, 2267)

7. Найдите четырехзначное число, являющееся полным квадратом.

Если отбросить первую цифру этого числа, получим полный куб, а если

отбросить следующую цифру, то оставшееся двузначное число будет

четвертой степенью целого числа. (9216)

8. 1729=a3+b3=c3+d3 , abcd. Найти a, b, c, d. (10,9; 12,1)

9. Найти наименьшее натуральное число х такое, что х3=a3+b3+c3 ,

где a,b,c - натуральные числа, не равные друг другу. (x=6, a=3, b=4, c=5)

10. Найти наименьшее натуральное число, которое можно

представить как сумму квадратов натуральных чисел двумя способами, то

есть m=a2+b2=c2+d2, где a, b, c, d – разные числа. (m=65, a=1, b=8, c=4,

d=7)

11. Найти число abcd, такое, что (ab)2=acb и (da)2=bca, где a,b,c,d

обозначают какие - либо цифры. (1121)

12. Найти четырехзначное число, сумма цифр которого делится на

17 и сумма цифр следующего за ним числа тоже делится на 17. (8899)

13. Вывести на экран каждую цифру натурального многоразрядного

числа отдельно и общее количество цифр (количество разрядов < 20).

Проверить для 1327007108. (10)

14. Ввести с клавиатуры натуральное многоразрядное число

(количество разрядов <20). Вывести на экран число, состоящее из цифр,

стоящих на нечетных местах введенного многоразрядного числа.

Проверить для 74638295. (7689)

15. Ввести с клавиатуры натуральное многоразрядное число. Вывести

на экран число, состоящее из цифр, стоящих на 1, 4, 7, и т.д. местах

введенного многоразрядного числа. Проверить для 24628725. (222) Ответы на основные задания темы смотрите на странице 327.

Page 257: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

227

6. ОТВЕТЫ НА ЗАДАНИЯ

6.1 Линейная структура. Тема № 1. Вывод информации на экран

Строки и столбцы из символов.

Чтобы наглядно показать количество символов в строке, в качестве

выводимого на экран символа используются цифры, однако можно

использовать любые символы.

1. Вывести на экран горизонтальную строку из 8 символов.

static void Main(string[] args)

{

Console.WriteLine("12345678");

/*вывод на экран строки из 8 символов, находящейся в кавычках */

Console.ReadKey(); // задержка экрана для просмотра результата

}

2. Вывести на экран горизонтальную строку из 10 символов,

отодвинутую от левого края экрана на 7 позиций.

static void Main(string[] args)

{

Console.WriteLine(" 1234567890");

/*в строке 7 пробелов, затем 10 символов */

Console.ReadKey(); // задержка экрана для просмотра результата

}

3. Вывести на экран вертикальную строку из 5 символов.

static void Main(string[] args)

{

Console.WriteLine("1");

Console.WriteLine("2");

Console.WriteLine("3");

Console.WriteLine("4");

Console.WriteLine("5");

/*в каждой строке выводится символ, затем следует переход на

новую строку */

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 258: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

228

4. Вывести на экран вертикальную строку из 8 символов,

отодвинутую от левого края экрана на 5 позиций.

static void Main(string[] args)

{

Console.WriteLine(" 1");

Console.WriteLine(" 2");

Console.WriteLine(" 3");

Console.WriteLine(" 4");

Console.WriteLine(" 5");

Console.WriteLine(" 6");

Console.WriteLine(" 7");

Console.WriteLine(" 8");

/* в каждой строке 5 пробелов, затем символ, затем следует переход

на новую строку */

Console.ReadKey(); // задержка экрана для просмотра результата

}

5. Вывести на экран 5 горизонтальных строк, каждая из 8 символов.

static void Main(string[] args)

{

Console.WriteLine("********");

Console.WriteLine("********");

Console.WriteLine("########");

Console.WriteLine("********");

Console.WriteLine("12345678");

/* в каждой строке 8 символов, затем следует переход на новую

строку */

Console.ReadKey(); // задержка экрана для просмотра результата

}

6. Вывести на экран горизонтальную строку из 11 символов, затем 5

пустых строк, затем еще одну горизонтальную строку из 9 символов.

static void Main(string[] args)

{

Console.WriteLine("01234567890");

Console.WriteLine();/* вывод пустой строки и переход на новую

строку */

Console.WriteLine();

Console.WriteLine();

Page 259: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

229

Console.WriteLine();

Console.WriteLine();

Console.WriteLine("123456789");

Console.ReadKey(); // задержка экрана для просмотра результата

}

7. Вывести на экран 4 горизонтальных строки, каждая из которых

состоит из 7 символов, отделенных друг от друга пустыми строками.

static void Main(string[] args)

{

Console.WriteLine("1234567");

Console.WriteLine();/* вывод пустой строки */

Console.WriteLine("1234567");

Console.WriteLine();

Console.WriteLine("1234567");

Console.WriteLine();

Console.WriteLine("1234567");

Console.ReadKey(); // задержка экрана для просмотра результата

}

8. Вывести на экран 3 вертикальных строки, каждая из которых

состоит из 5 символов, отстоящих друг от друга на 3 позиции.

static void Main(string[] args)

{

Console.WriteLine("1 2 3 4 5");//между цифрами – 3 пробела

Console.WriteLine("# # # # #");

Console.WriteLine("1 2 3 4 5");

Console.WriteLine("1 2 3 4 5");

Console.WriteLine("1 2 3 4 5");

Console.ReadKey(); // задержка экрана для просмотра результата

}

9. Вывести на экран наклонную линию (/) из 9 символов.

static void Main(string[] args)

{

// в каждой следующей строке – на пробел меньше

Console.WriteLine(" #");// здесь 8 пробелов и 1 символ

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Page 260: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

230

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine("#"); // всего 9 строк

Console.ReadKey(); // задержка экрана для просмотра результата

}

10. Вывести на экран наклонную линию (\) из 8 символов.

static void Main(string[] args)

{

// в каждой следующей строке – на пробел больше

Console.WriteLine("#"); // всего 8 строк

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.WriteLine(" #");

Console.ReadKey(); // задержка экрана для просмотра результата

}

Page 261: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

231

6.2 Линейная структура. Тема № 2. Простейшие расчеты

1. Даны два ненулевых числа. Найти сумму, разность, произведение

и частное их квадратов.

static void Main(string[] args)

{

Double a, b, Sum, Razn, Proizv, Chast;

Console.Write("a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("b = ");

b = Convert.ToDouble(Console.ReadLine());

Sum = a * a + b * b;

Razn = a * a - b * b;

Proizv = a * a * b * b;

Chast = a * a / (b * b);

Console.WriteLine("сумма квадратов = " + Sum);

Console.WriteLine("разность квадратов = " + Razn);

Console.WriteLine("произведение квадратов = " + Proizv);

Console.WriteLine("частное квадратов = " + Chast);

Console.ReadKey();

}

2. Даны два ненулевых числа. Найти сумму, разность, произведение

и частное их модулей.

static void Main(string[] args)

{

Double a, b, Sum, Razn, Proizv, Chast;

Console.Write("a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("b = ");

b = Convert.ToDouble(Console.ReadLine());

Sum = Math.Abs(a) + Math.Abs(b);

Razn = Math.Abs(a) - Math.Abs(b);

Proizv = Math.Abs(a) * Math.Abs(b);

Page 262: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

232

Chast = Math.Abs(a) / Math.Abs(b);

Console.WriteLine("сумма модулей = " + Sum);

Console.WriteLine("разность модулей = " + Razn);

Console.WriteLine("произведение модулей = " + Proizv);

Console.WriteLine("частное модулей = " + Chast);

Console.ReadKey();

}

3. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2).

Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний

радиус которого равен R1, а внутренний радиус равен R2:

static void Main(string[] args)

{

Double R1, R2, S1, S2, S3;

Console.Write("R1 = ");

R1 = Convert.ToDouble(Console.ReadLine());

Console.Write("R2 = ");

R2 = Convert.ToDouble(Console.ReadLine());

S1 = Math.PI * R1 * R1;

S2 = Math.PI * R2 * R2;

S3 = S1 - S2;

Console.WriteLine("площадь круга S1 = " + S1);

Console.WriteLine("площадь круга S2 = " + S2);

Console.WriteLine("площадь кольца S3 = " + S3);

Console.ReadKey();

}

4. Дана площадь S круга. Найти его диаметр D и длину L

окружности, ограничивающий этот круг, учитывая, что

.

static void Main(string[] args)

{

Double S, R, D, L;

Page 263: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

233

Console.Write("Введите площадь круга S = ");

S = Convert.ToDouble(Console.ReadLine());

R = Math.Sqrt (S / Math.PI);

D = 2 * R;

L = Math.PI * D;

Console.WriteLine("диаметр круга D = " + D);

Console.WriteLine("длина окружности L = " + L);

Console.ReadKey();

}

5. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC

и BC и их сумму.

static void Main(string[] args)

{

Double A, B, C, AC, BC, Sum;

Console.Write("Введите координату точки A = ");

A = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите координату точки B = ");

B = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите координату точки C = ");

C = Convert.ToDouble(Console.ReadLine());

AC = Math.Abs (A - C);

BC = Math.Abs (B - C);

Sum = AC + BC;

Console.WriteLine("длина отрезка AC = " + AC);

Console.WriteLine("длина отрезка BC = " + BC);

Console.WriteLine("сумма AC и BC = " + Sum);

Console.ReadKey();

}

6. Даны три точки A, B, C на числовой оси. Точка С расположена

между точками A и B. Найти произведение длин отрезков AC и BC.

Page 264: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

234

static void Main(string[] args)

{

Double A, B, C, AC, BC, Proiz;

Console.Write("Введите координату точки A = ");

A = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите координату точки B = ");

B = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите координату точки C = ");

C = Convert.ToDouble(Console.ReadLine());

AC = Math.Abs(A - C);

BC = Math.Abs(B - C);

Proiz = AC * BC;

Console.WriteLine("длина отрезка AC = " + AC);

Console.WriteLine("длина отрезка BC = " + BC);

Console.WriteLine("произведение AC и BC = " + Proiz);

Console.ReadKey();

}

7. Даны координаты двух противоположных вершин

прямоугольника: (x1 , y1) и (x2 , y2). Стороны прямоугольника

параллельны осям координат. Найти периметр и площадь данного

прямоугольника.

static void Main(string[] args)

{

Double x1, x2, y1, y2, a, b, P, S;

Console.Write("x1 = ");

x1 = Convert.ToDouble(Console.ReadLine());

Console.Write("y1 = ");

y1 = Convert.ToDouble(Console.ReadLine());

Console.Write("x2 = ");

x2 = Convert.ToDouble(Console.ReadLine());

Console.Write("y2 = ");

y2 = Convert.ToDouble(Console.ReadLine());

a = Math.Abs (x1 - x2); // длина стороны прямоугольника,

параллельной оси x

Page 265: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

235

b = Math.Abs (y1 - y2); // длина стороны прямоугольника,

параллельной оси y

P = 2 * (a + b); // периметр прямоугольника

S = a * b; // площадь прямоугольника

Console.WriteLine("Периметр прямоугольника P = " + P);

Console.WriteLine("Площадь прямоугольника S = " + S);

Console.ReadKey();

}

8, 9. Даны координаты трех вершин треугольника: (x1, y1), (x2 , y2), (x3

, y3). Найти его периметр и площадь, используя

формулу Для нахождения площади треугольника со

сторонами a, b, c использовать формулу Герона

где p = (a + b + c) / 2 – полупериметр.

static void Main(string[] args)

{

Double x1, x2, y1, y2, x3, y3, a, b, c, p, P, S;

Console.Write("x1 = ");

x1 = Convert.ToDouble(Console.ReadLine());

Console.Write("y1 = ");

y1 = Convert.ToDouble(Console.ReadLine());

Console.Write("x2 = ");

x2 = Convert.ToDouble(Console.ReadLine());

Console.Write("y2 = ");

y2 = Convert.ToDouble(Console.ReadLine());

Console.Write("x3 = ");

x3 = Convert.ToDouble(Console.ReadLine());

Console.Write("y3 = ");

y3 = Convert.ToDouble(Console.ReadLine());

a = Math.Sqrt((x1 - x2)*(x1 - x2) + (y1 - y2) * (y1 - y2));

b = Math.Sqrt((x3 - x2)*(x3 - x2) + (y3 - y2) * (y3 - y2));

c = Math.Sqrt((x1 - x3)*(x1 - x3) + (y1 - y3) * (y1 - y3));

P = a + b + c;

p = (a + b + c)/2;

S = Math.Sqrt (p * (p - a) * (p - b) * (p - c));

Console.WriteLine("Периметр треугольника P = " + P);

Page 266: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

236

Console.WriteLine("Площадь треугольника S = " + S);

Console.ReadKey();

}

10. Даны переменные A, B, C. Изменить их значения, переместив

содержимое A в B, B – в C, C – в A, и вывести новые значения переменных

A, B, C.

static void Main(string[] args)

{

Double A, B, C, D;

Console.Write("A = ");

A = Convert.ToDouble(Console.ReadLine());

Console.Write("B = ");

B = Convert.ToDouble(Console.ReadLine());

Console.Write("C = ");

C = Convert.ToDouble(Console.ReadLine());

D = A; // новая переменная D нужна для сохранения значения

A

A = C;

C = B;

B = D; // здесь старое значение A (оно хранилось в D)

присваивается B

Console.WriteLine("Новое значение A = " + A);

Console.WriteLine("Новое значение B = " + B);

Console.WriteLine("Новое значение C = " + C);

Console.ReadKey();

}

Page 267: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

237

6.3 Линейная структура. Тема № 3. Расчет арифметического

выражения

BA

C

CBCCBA

A

C

BABBC

BAtg

y

C

ln*4

*8sin

*

200458,374:Ответ 3.C 1,B 8,A

2

22

1.

static void Main(string[] args)

{

Double a = 8, b = 1, c = 3, x1, x2, x3, y;

x1 = Math.Tan(Math.Sqrt(a * b) / Math.Sin(c + b)) - 8 * b;

x2 = Math.Pow(a * a + b * b, c);

x3 = c / a * Math.Sqrt(a * a / 4 - b * c + Math.Sqrt(c) - Math.Log(b

+ c));

y = (x1 + x2) / x3 + c / (a + b);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

CBA

CCBA

C

B

B

AA

yC

BA

CB

ln

3 5*

5sincosln

0.0174229:Ответ 4.C 5,B 3,A 2.

static void Main(string[] args)

{

Double a = 3, b = 5, c = 4, x1, x2, x3, x4, y;

x1 = Math.Log(Math.Pow(a, b) + Math.Exp(c)) + Math.Cos(a / b);

x2 = Math.Sin(b / (c + 5));

x3 = a * a * a * b - Math.Pow(c + 5, a - b);

x4 = Math.Pow(c, Math.Log(c)) / (a + Math.Sqrt(b) - c);

y = Math.Sqrt(x1 - x2)/(x3+x4);

Page 268: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

238

Console.WriteLine("y = " + y);

Console.ReadKey();

}

BAB

CB

BC

BAA

BA

C

B

ABA

y*

2

*sin9ln*8

*3

6sin*

5-3.8298149:Ответ 6.C 1,B 2,A 3.

static void Main(string[] args)

{

Double a = 2, b = 1, c = 6, x1, x2, y;

x1 = Math.Pow(a + b, b - c) * Math.Sin((a - 6) / (b * b + 3));

x2 = Math.Log(9 + Math.Sin(a + b / Math.Sqrt(c + b))) *

Math.Exp(a * b);

y = (x1 + c / (a * b)) / (Math.Pow(8 * a, b) - x2);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

A

BA

BA

CB

AB

CBBAy

3ln*2cos18ln

3cos*sin

-0.6846181:Ответ 0,3.C 1,B 2,A

*

4.

static void Main(string[] args)

{

Double a = 2, b = 1, c = 0.3, x1, x2, x3, x4, y;

x1 = Math.Sqrt(Math.Sin(a + b) * Math.Cos(b + c));

x2 = Math.Sqrt(3 + Math.Exp(a * b));

x3 = Math.Log(18 - Math.Cos(2 * b) / Math.Exp(a + b));

x4 = Math.Pow(Math.Log(3 + a) / (b + c), a);

y = (x1 - x2) / (x3 + x4);

Console.WriteLine("y = " + y);

Page 269: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

239

Console.ReadKey();

}

A

B

B

A

BAtgA

BA

CBACBy

C

cossin

**

8.1913213:Ответ 4.C 3,B 2,A 5.

static void Main(string[] args)

{

Double a = 2, b = 3, c = 4, x1, x2, y;

x1 = Math.Tan(a + b) / Math.Sqrt(a / b + Math.Sqrt(b / a));

x2 = Math.Sqrt(a + b * c);

y = b * c - x2 / (Math.Sin(a) - Math.Cos(b) / (Math.Pow(a, c) +

x1));

Console.WriteLine("y = " + y);

Console.ReadKey();

}

BB

ABActg

А

BA

С

AC

B

Ay

sin*1237

lnsin

lncos

cos

2.09738916:Ответ 6,5.C 1,4,B 2,2,A 6.

static void Main(string[] args)

{

Double a = 2.2, b = 1.4, c = 6.5, x1, x2, y;

x1 = Math.Cos(c + Math.Log(a / c)) / Math.Sin(a + Math.Log(b /

a));

x2 = Math.Abs(-1237 + 1 / Math.Tan(a - b) * Math.Sin(a / b));

y = a + (Math.Cos(b + x1) - Math.PI) / Math.Sqrt(x2 + b);

Page 270: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

240

Console.WriteLine("y = " + y);

Console.ReadKey();

}

C

AC

C

BABBCC

ACtg

CBACBAA

y

sin

22

*cos**cos*sin

cossin**cos*cos

4558184.479026:Ответ 3.C 5,B 4,A 7.

static void Main(string[] args)

{

Double a = 4, b = 5, c = 3, x1, x2, x3, x4, y;

x1 = Math.Cos(a) * Math.Cos(a * b) * Math.Sin(c);

x2 = Math.Sqrt(a * a + b * b - c) / Math.Cos(Math.Tan(c + a));

x3 = Math.Sin(c) * Math.Cos(c * b);

x4 = Math.Sqrt((Math.Pow(a, c) + Math.Pow(b, a)) / Math.Pow(c,

Math.Sin(c)));

y = (x1 + x2) / (x3 * Math.Cos(b * x4));

Console.WriteLine("y = " + y);

Console.ReadKey();

}

ACAAC

A

CBAB

A

CC

BA

y

sin*25

cos*sin

lnln

sin

*

633-1.2678854:Ответ 1.C 2,B 7,A

22

8.

static void Main(string[] args)

{

Double a = 7, b = 2, c = 1, x1, x2, x3, x4, x5, y;

x1 = a * b / (c + Math.Sin(c)) + Math.Log(Math.Log(a) /

Math.Sin(b));

x2 = Math.Sqrt(a * a - b * b * Math.Cos(c));

x3 = Math.Sqrt((a - 5) / (c + a));

Page 271: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

241

x4 = Math.Sqrt(Math.Sqrt(a) + Math.Sqrt(c));

x5 = Math.Sqrt(2 * Math.Sin(Math.Sqrt(a)));

y = (x1 - x2) / (x3 - Math.Sqrt(x4+x5));

Console.WriteLine("y = " + y);

Console.ReadKey();

}

B

CB

B

AA

CBABB

CB

CBBA

BA

CABA

y

*3sin

*2sin

*

*

cos

*sin

-0.6183869:Ответ 2.C 2,B 1,A 9.

static void Main(string[] args)

{

Double a = 1, b = 2, c = 2, x1, x2, x3, x4, y;

x1 = Math.Sqrt((a - b) * (a - c) / Math.Sin(a * b));

x2 = Math.Sqrt((Math.Cos(a) + b * (b - c)) / (b * c));

x3 = Math.Sqrt(b * (b - a) * (b - c));

x4 = (Math.Sin(2 * a) + a / b) / (Math.Sin(3 * b) - c / b);

y = (x1 - x2) / (x3 + x4);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

CA

A

C

BACBA

BBA

BABABAy

2

5cos

3

22

sinln3*

*

cos***3

1.07548386:Ответ 6.C 5,B 2,A 10.

static void Main(string[] args)

{

Double a = 2, b = 5, c = 6, x1, x2, x3, x4, y;

Page 272: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

242

x1 = Math.Sqrt(a * a + b * b - 3 * a * b * Math.Cos(a - b));

x2 = (a * b * b * b - Math.Pow(b, c)) / Math.Sqrt(a + b * c);

x3 = Math.Sqrt(3 + Math.Log(a - Math.Sin(b)));

x4 = Math.Exp(Math.Cos(a + 5) / (a * a + c));

y = x1 / (x2 + x3) + x4;

Console.WriteLine("y = " + y);

Console.ReadKey();

}

BA

BAA

CB

B

ABA

CAC

CBAtg

y

BC

CAtg

sin*sinln

3sin

cos3

sin**

0.27393990:Ответ 1.C 2,B 3,A 11.

static void Main(string[] args)

{

Double a = 3, b = 2, c = 1, x1, x2, x3, y;

x1 = Math.Tan((a * b + c) / (c - a + Math.Sqrt(c))); ;

x2 = Math.Pow(Math.Sin((b + c) / 3), Math.Tan((a - c) / (c +

Math.Sqrt(b))));

x3 = Math.Log(a + (a + b) / (Math.Sin(a) * Math.Sin(b)));

y = (x1 * Math.Sin((a + b) / 3) + Math.Cos(a / b)) / (x2 - x3);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

3cosln

*

3*

*lnsin

680.19420363:Ответ 3.C 5,B 1,A

24

12.

BABA

BCBActg

AC

BA

y

AC

B

C

BA

static void Main(string[] args)

Page 273: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

243

{

Double a = 1, b = 5, c = 3, x1, x2, x3, x4, y;

x1 = Math.Sin(Math.Exp((a+b)/c)-Math.Exp(b/(c+a)));

x2 = Math.Log(a*b/(c*(3-a)));

x3 = 1/Math.Tan((a*a*a*a*b*b-

Math.Sqrt(c+b))/(Math.Log(a)+Math.Cos(b)));

x4 = Math.Sqrt(a+Math.Sqrt(b+3));

y = (x1 + x2) / (x3 - x4);

Console.WriteLine("y = " + y);

Console.ReadKey();

}

Page 274: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

244

6.4 Разветвляющаяся структура. Тема № 1. Простые задания

1. Даны три целых числа. Найти количество положительных чисел и

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

static void Main(string[] args)

{

//программа подсчета количества положительных и

отрицательных чисел

int a, b, c, k, m;

Console.WriteLine (" Введите 3 числа a, b, с: ");

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

c = Convert.ToInt32 (Console.ReadLine());

k = 0; // присвоим начальное значение счетчику положительных

чисел k

m = 0; // присвоим начальное значение счетчику отрицательных

чисел m

if (a > 0) k++;/* увеличиваем к на единицу ( k++ - это k=k+1 )*/

else m++;

if (b > 0) k++;

else m++;

if (c > 0) k++;

else m++;

Console.WriteLine ( " Количество положительных чисел k = " +

k);

Console.WriteLine ( " Количество отрицательных чисел m = " +

m);

Console.ReadKey(); // задержка экрана для просмотра результата

}

2. Даны три вещественных числа. Найти среднее из них (то есть

число, расположенное между наименьшим и наибольшим).

static void Main(string[] args)

{

Double a, b, c, sred;

// каждой объявленной переменной обязательно необходимо

присвоить значение

Page 275: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

245

sred = 0; // присваиваем переменной sred любое значение

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

if ( ((a > b) && (b > c)) || ((a < b) && (b < c)) ) sred = b ;

if ( ((a > c) && (c > b)) || ((a < c) && (c < b)) ) sred = c ;

if ( ((b > a) && (a > c)) || ((b < a) && (a < c)) ) sred = a ;

Console.WriteLine ( "среднее число = " + sred );

Console.ReadKey();

}

3. Даны три вещественных числа. Вывести вначале наименьшее, а

затем наибольшее из данных чисел.

static void Main(string[] args)

{

Double a, b, c, min, max;

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

min = a; // присваиваем переменной min начальное значение

if (min > b) min = b ;

if (min > c) min = c ;

max = a; // присваиваем переменной max начальное значение

if (max < b) max = b ;

if (max < c) max = c ;

Console.WriteLine ( "наименьшее число = " + min );

Console.WriteLine ( "наибольшее число = " + max );

Console.ReadKey();

}

4. Даны три вещественных числа. Найти сумму двух наибольших из

них.

static void Main(string[] args)

{

Page 276: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

246

Double a, b, c, max2;

// каждой объявленной переменной обязательно необходимо

присвоить значение

min2 = 0; // присваиваем переменной min2 любое значение

Console.WriteLine (" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

if ( (a > c) && (b > c) ) max2 = a + b ;

if ( (a > b) && (c > b) ) max2 = a + c ;

if ( (b > a) && (c > a) ) max2 = b + c ;

Console.WriteLine("сумма двух наибольших чисел = " + max2 );

Console.ReadLine();

}

5. Даны три переменные вещественного типа A, B, C. Если их

значения упорядочены по возрастанию, то удвоить их; в противном случае

заменить значение каждой переменной на противоположное. Вывести

новые значения переменных A, B, C.

static void Main(string[] args)

{

Double a, b, c;

Console.WriteLine(" Введите a, b, c: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

c = Convert.ToDouble(Console.ReadLine());

if ((a < b) && (b < c)) { a = 2 * a; b = 2 * b; c = 2 * c; }

else { a = -a; b = -b; c = -c; }

Console.WriteLine("новые значения a ="+ a +" b = "+ b +" c = "+

c);

Console.ReadLine();

}

6. Даны три переменные вещественного типа A, B, C. Если их

значения упорядочены по возрастанию или убыванию, то удвоить их; в

противном случае заменить значение каждой переменной на

противоположное. Вывести новые значения переменных A, B, C.

static void Main(string[] args)

{

Double a, b, c;

Page 277: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

247

Console.WriteLine(" Введите a, b, c: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

c = Convert.ToDouble(Console.ReadLine());

// здесь || - логическое ИЛИ

if (((a < b) && (b < c)) || ((a > b) && (b > c)))

{ a = 2 * a; b = 2 * b; c = 2 * c; }

else { a = -a; b = -b; c = -c; }

Console.WriteLine("новые значения a =" + a + " b = " + b + " c =

" + c);

Console.ReadKey();

}

7. Даны четыре целых числа, одно из которых отлично от трех

других, равных между собой. Определить порядковый номер числа,

отличного от других.

Вариант № 1

static void Main(string[] args)

{

int a, b, c, d;

Console.WriteLine(" Введите a, b, c, d: ");

a = Convert.ToInt32(Console.ReadLine());

b = Convert.ToInt32(Console.ReadLine());

c = Convert.ToInt32(Console.ReadLine());

d = Convert.ToInt32(Console.ReadLine());

if ((a != b) && (a != c) && (a != d)) Console.WriteLine("порядковый

номер числа 1");

if ((b != a) && (b != c) && (b != d)) Console.WriteLine("порядковый

номер числа 2");

if ((c != a) && (c != b) && (c != d)) Console.WriteLine("порядковый

номер числа 3");

if ((d != a) && (d != b) && (d != c)) Console.WriteLine("порядковый

номер числа 4");

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d;

Console.WriteLine(" Введите a, b, c, d: ");

Page 278: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

248

a = Convert.ToInt32 (Console.ReadLine());

b = Convert.ToInt32 (Console.ReadLine());

c = Convert.ToInt32 (Console.ReadLine());

d = Convert.ToInt32 (Console.ReadLine());

if ((b == c) && (c == d)) Console.WriteLine("порядковый номер

числа 1");

if ((a == c) && (c == d)) Console.WriteLine("порядковый номер

числа 2");

if ((a == b) && (b == d)) Console.WriteLine("порядковый номер

числа 3");

if ((a == b) && (b == c)) Console.WriteLine("порядковый номер

числа 4");

Console.ReadKey();

}

8. На числовой оси расположены три точки: А, В, С. Определить,

какая из двух последних точек (В или С) расположена ближе к А, и

вывести координаты этой точки и ее расстояние от точки А на экран.

static void Main(string[] args)

{

Double a, b, c, L1, L2;

Console.WriteLine(" Введите a, b, c: ");

a = Convert.ToDouble (Console.ReadLine());

b = Convert.ToDouble (Console.ReadLine());

c = Convert.ToDouble (Console.ReadLine());

L1 = Math.Abs (a - b); // расстояние от точки а до точки b

L2 = Math.Abs (a - c); // расстояние от точки а до точки с

if (L1 > L2)

{Console.WriteLine("координата точки с = " + c );

Console.WriteLine("расстояние от точки а до точки с = " +

L2 );}

else

{Console.WriteLine("координата точки b = " + b );

Console.WriteLine("расстояние от точки а до точки b = " +

L1 );}

Console.ReadKey();

Page 279: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

249

}

9. Даны целочисленные координаты точки на плоскости. Если точка

совпадает с началом координат, то вывести 0. Если точка не совпадает с

началом координат, но лежит на оси ОХ или OY, то вывести

соответственно 1 или 2. Если точка не лежит на координатных осях, то

вывести 3.

static void Main(string[] args)

{

int x, y;

Console.WriteLine(" Введите x, y: ");

x = Convert.ToInt32 (Console.ReadLine());

y = Convert.ToInt32 (Console.ReadLine());

if ((x == 0) && (y == 0)) Console.WriteLine(" 0");

if ((x == 0) && (y != 0)) Console.WriteLine(" 1");

if ((x != 0) && (y == 0)) Console.WriteLine(" 2");

if ((x != 0) && (y != 0)) Console.WriteLine(" 3");

Console.ReadKey();

}

10. Даны координаты точки, не лежащей на координатных осях ОХ и

OY. Определить номер координатной четверти, в которой находится

данная точка.

static void Main(string[] args)

{

Double x, y;

Console.WriteLine(" Введите x, y: ");

x = Convert.ToDouble(Console.ReadLine());

y = Convert.ToDouble(Console.ReadLine());

if ((x > 0) && (y > 0)) Console.WriteLine(" 1");

if ((x < 0) && (y > 0)) Console.WriteLine(" 2");

if ((x < 0) && (y < 0)) Console.WriteLine(" 3");

if ((x > 0) && (y < 0)) Console.WriteLine(" 4");

Console.ReadKey();

}

Page 280: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

250

6.5 Разветвляющаяся структура. Тема № 3. Нестандартные

задания

1. Ввести с клавиатуры числа x, y. Меньшее из этих двух чисел

заменить их полусуммой, а большее – их удвоенным произведением.

Результат вывести на экран.

static void Main(string[] args)

{

double a, b, a1 = 0, b1 = 0;

Console.Write("a=");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("b=");

b = Convert.ToDouble(Console.ReadLine());

if (a < b)

{

a1 = (a + b) / 2;

b1 = 2 * a * b;

}

if (b < a)

{

b1 = (a + b) / 2;

a1 = 2 * a * b;

}

Console.WriteLine();

Console.WriteLine("новые значения а и b");

Console.WriteLine("a=" + a1);

Console.WriteLine("b=" + b1);

Console.ReadLine();

}

2. С клавиатуры введены три числа a,b и c. Определить, можно ли из

отрезков с величинами сторон a,b,c составить треугольник.

static void Main(string[] args)

{

Double a, b, c;

Console.WriteLine(" Введите величины сторон треугольника a, b,

c:");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

c = Convert.ToDouble(Console.ReadLine());

Page 281: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

251

Console.Write("из отрезков с величинами сторон "+a+" "+b+"

"+c);

if ((a > 0) && (b > 0) && (c > 0) && (a + b > c) && (a + c > b) &&

(b + c > a))

Console.WriteLine(" составить треугольник можно");

else Console.WriteLine(" составить треугольник нельзя");

Console.ReadKey();

}

3. Даны x, y. Если x и y отрицательны, то каждое значение заменить

его модулем; если отрицательно только одно из них, то оба значения

увеличить на 0.5; если оба значения неотрицательны, то оба значения

увеличить в 10 раз.

static void Main(string[] args)

{

Double x, y;

Console.WriteLine("Введите значения x и y");

Console.Write(" x=");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" y=");

y = Convert.ToDouble(Console.ReadLine());

if ((x < 0) && (y < 0))

{

x = Math.Abs(x);

y = Math.Abs(y);

goto metka;

}

if (((x >= 0) && (y < 0)) || ((x < 0) && (y >= 0)))

{

x = 0.5 + x;

y = y + 0.5;

goto metka;

}

if ((x >= 0) && (y >= 0))

{

x = 10 * x;

y = 10 * y;

Page 282: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

252

}

metka: Console.WriteLine();

Console.WriteLine("новые значения x и y");

Console.WriteLine(" x=" + x);

Console.WriteLine(" y=" + y);

Console.ReadKey();

}

4. Выяснить, принадлежит ли точка М(x,y) кругу радиуса r с центром

в точке с координатами a,b.

static void Main(string[] args)

{

Double a, b, x, y, r;

Console.WriteLine("Введите координаты точки М");

Console.Write(" x=");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" y=");

y = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

Console.WriteLine("Введите координаты центра круга a, b и

его радиус r");

Console.Write(" a=");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b=");

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" r=");

r = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

if ((x - a) * (x - a) + (y - b) * (y - b) <= r * r)

Console.WriteLine("точка М принадлежит кругу");

else Console.WriteLine("точка М не принадлежит кругу");

Console.ReadKey();

}

5. Выяснить, принадлежит ли точка М(x,y) кольцу с центром в начале

координат, внешним радиусом r1, внутренним радиусом r2.

Page 283: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

253

static void Main(string[] args)

{

Double x, y, r1, r2;

Console.WriteLine("Введите координаты точки М");

Console.Write(" x=");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" y=");

y = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

Console.WriteLine("Введите внешний r1 и внутренний r2

радиусы кольца");

Console.Write(" r1=");

r1 = Convert.ToDouble(Console.ReadLine());

Console.Write(" r2=");

r2 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

if ((x * x + y * y <= r1 * r1) && (x * x + y * y >= r2 * r2))

Console.WriteLine("точка М принадлежит кольцу");

else Console.WriteLine("точка М не принадлежит кольцу");

Console.ReadKey();

}

6. Даны 5 натуральных чисел, причем некоторые из них равны между

собой. Вывести на экран значения всех чисел, не равных между собой.

static void Main(string[] args)

{

uint a, b, c, d, e;

// здесь uint - объявление натурального числа (целого

положительного)

Console.WriteLine(" Введите a, b, c, d, e: ");

a = Convert.ToUInt32(Console.ReadLine());

b = Convert.ToUInt32(Console.ReadLine());

c = Convert.ToUInt32(Console.ReadLine());

d = Convert.ToUInt32(Console.ReadLine());

e = Convert.ToUInt32(Console.ReadLine());

Console.WriteLine();

Page 284: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

254

Console.WriteLine(" числа из набора, встречающиеся один раз

");

if ((a != b) && (a != c) && (a != d) && (a != e))

Console.WriteLine(a);

if ((b != a) && (b != c) && (b != d) && (b != e))

Console.WriteLine(b);

if ((c != b) && (c != a) && (c != d) && (c != e))

Console.WriteLine(c);

if ((d != b) && (d != c) && (d != a) && (d != e))

Console.WriteLine(d);

if ((e != b) && (e != c) && (e != d) && (e != a))

Console.WriteLine(e);

Console.ReadKey();

}

7. Ввести число в диапазоне 1-99, означающее возраст человека, с

клавиатуры. Вывести это же число с дополнительным словом год, года,

лет, например, 1 год, 4 года, 12 лет и т.д.

static void Main(string[] args)

{

// если число заканчивается на 1 (кроме 11), то добавляем

«год»,

// если число заканчивается на 2,3,4 (кроме 12, 13, 14), то

добавляем «года»,

// во всех остальных случаях добавляем «лет»

int a, b;

Console.Write(" Введите возраст человека: ");

a = Convert.ToInt32(Console.ReadLine());

// отделяем последнюю цифру числа

b = a % 10;

if ((b == 1) && (a != 11))

{

Console.Write(a + " год");

Console.ReadKey();

return;

}

Page 285: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

255

if ((b >= 2) && (b <= 4) && (a != 12) && (a != 13) && (a != 14))

{

Console.Write(a + " года");

Console.ReadKey();

return;

}

Console.Write(a + " лет");

Console.ReadKey();

}

8. Написать программу решения квадратного уравнения ax2+bx+c=0.

Вывести либо значения корней, либо сообщение, что корней нет.

Проверить для 23x2-51,5x-100,1=0 (3.4871, -1.2480)

static void Main(string[] args)

{

Double a, b, c, d, x, x1, x2;

Console.WriteLine(" Введите a, b, c: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

c = Convert.ToDouble(Console.ReadLine());

d = b * b - 4 * a * c; // вычисляем дискриминант

if (d < 0) Console.WriteLine(" нет решения");

if (d == 0) Console.WriteLine(" x = " + (-b/(2*a)));

if (d > 0) Console.WriteLine("x1=" + ((-b + Math.Sqrt(d)) / (2 * a))

+ " x2=" + ((-b - Math.Sqrt(d)) / (2 * a)));

Console.ReadKey();

}

9. Год високосный, если его номер делится на 4, за исключением тех,

которые делятся на 100 и не делятся на 400. Являются ли високосными

1928, 1900, 1992, 1994? (да, нет, да, нет)

static void Main(string[] args)

{

int x;

Page 286: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

256

Console.WriteLine(" Введите номер года: ");

x = Convert.ToInt32(Console.ReadLine());

if ((x%4 != 0) || ((x%4 == 0) && (x%100 == 0) && (x%400 !=

0)))

Console.WriteLine(" не високосный год");

else Console.WriteLine(" високосный год");

Console.ReadKey();

}

10. Ввести с клавиатуры число от 1 до 7. На числа от 1 до 5 программа

должна выводить сообщение «рабочий день», на числа 6,7 – «выходной

день».

static void Main(string[] args)

{

int x;

Console.Write(" Введите номер дня недели: ");

x = Convert.ToInt32(Console.ReadLine());

if ((x >= 1) && (x <= 5)) Console.WriteLine(" рабочий день");

if ((x == 6) || (x == 7)) Console.WriteLine(" выходной день");

Console.ReadKey();

}

11. Даны 5 чисел. Вывести на экран произведение натуральных

(целых положительных) чисел.

static void Main(string[] args)

{

Double a, b, c, d, e, p=1;

// переменная p служит для перемножения натуральных чисел

Console.WriteLine(" Введите a, b, c, d, e: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

c = Convert.ToDouble(Console.ReadLine());

d = Convert.ToDouble(Console.ReadLine());

e = Convert.ToDouble(Console.ReadLine());

Page 287: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

257

// (int)(a) - означает преобразование вещественного а в целое

if ((a == (int)(a)) && (a > 0)) p *= a; // p*=a означает p=p*a

if ((b == (int)(b)) && (b > 0)) p *= b;

if ((c == (int)(c)) && (c > 0)) p *= c;

if ((d == (int)(d)) && (d > 0)) p *= d;

if ((e == (int)(e)) && (e > 0)) p *= e;

Console.WriteLine("произведение натуральных чисел = " + p);

Console.ReadKey();

}

12. Даны 5 чисел. Вывести на экран для чисел, не являющихся

целыми, сумму их дробных частей.

static void Main(string[] args)

{

Double a, b, c, d, e, s=0;

// переменная s служит для суммирования дробных частей

чисел, не являющихся целыми

Console.WriteLine(" Введите a, b, c, d, e: ");

a = Convert.ToDouble(Console.ReadLine());

b = Convert.ToDouble(Console.ReadLine());

c = Convert.ToDouble(Console.ReadLine());

d = Convert.ToDouble(Console.ReadLine());

e = Convert.ToDouble(Console.ReadLine());

// (int)(a) - означает преобразование вещественного а в целое

if (a != (int)(a)) s = s + (a - (int)(a));

if (b != (int)(b)) s = s + (b - (int)(b));

if (c != (int)(c)) s = s + (c - (int)(c));

if (d != (int)(d)) s = s + (d - (int)(d));

if (e != (int)(e)) s = s + (e - (int)(e));

Console.WriteLine("сумма дробных частей вещественных чисел

= " + s);

Console.ReadKey();

}

Page 288: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

258

6.6 Разветвляющаяся структура. Тема № 4. Оператор switch

1. Используя случайное число в диапазоне от 1 до 7, вывести на экран

название дня недели.

static void Main(string[] args)

{

// инициализирует (объявляет и присваивает значение) новый

экземпляр a класса Random

Random a = new Random();

int n = a.Next(1, 7); // присваивает n случайное значение из

диапазона 1-7

switch (n)

{

case 1: Console.WriteLine("понедельник"); break;

case 2: Console.WriteLine("вторник"); break;

case 3: Console.WriteLine("среда"); break;

case 4: Console.WriteLine("четверг"); break;

case 5: Console.WriteLine("пятница"); break;

case 6: Console.WriteLine("суббота"); break;

case 7: Console.WriteLine("воскресенье"); break;

}

Console.ReadKey();

}

2. Ввести с клавиатуры название дня недели, вывести на экран номер

этого дня недели.

static void Main(string[] args)

{

Console.Write("Введите название дня недели: ");

string n = Console.ReadLine(); // объвляем n строковой

переменной

Console.Write("Номер дня недели: ");

switch (n)

{

case "понедельник": Console.WriteLine(1); break;

case "вторник": Console.WriteLine(2); break;

case "среда": Console.WriteLine(3); break;

case "четверг": Console.WriteLine(4); break;

case "пятница": Console.WriteLine(5); break;

Page 289: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

259

case "суббота": Console.WriteLine(6); break;

case "воскресенье": Console.WriteLine(7); break;

}

Console.ReadKey();

}

3. Используя случайное число в диапазоне от 1 до 12, вывести на

экран название месяца.

static void Main(string[] args)

{

// инициализирует (объявляет и присваивает значение) новый

экземпляр mon класса Random

Random mon = new Random();

int m = mon.Next(1, 12); //присваивает m случайное значение из

диапазона 1-12

switch (m)

{

case 1: Console.WriteLine("январь"); break;

case 2: Console.WriteLine("февраль"); break;

case 3: Console.WriteLine("март"); break;

case 4: Console.WriteLine("апрель"); break;

case 5: Console.WriteLine("май"); break;

case 6: Console.WriteLine("июнь"); break;

case 7: Console.WriteLine("июль"); break;

case 8: Console.WriteLine("август"); break;

case 9: Console.WriteLine("сентябрь"); break;

case 10: Console.WriteLine("октябрь"); break;

case 11: Console.WriteLine("ноябрь"); break;

case 12: Console.WriteLine("декабрь"); break;

}

Console.ReadKey();

}

4. Ввести с клавиатуры название месяца, вывести на экран номер

этого месяца.

static void Main(string[] args)

{

Console.Write("Введите название месяца: ");

string month = Console.ReadLine(); // объвляем month строковой

переменной

Page 290: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

260

Console.Write("Номер месяца: ");

switch (month)

{

case "январь": Console.WriteLine(1); break;

case "февраль": Console.WriteLine(2); break;

case "март": Console.WriteLine(3); break;

case "апрель": Console.WriteLine(4); break;

case "май": Console.WriteLine(5); break;

case "июнь": Console.WriteLine(6); break;

case "июль": Console.WriteLine(7); break;

case "август": Console.WriteLine(8); break;

case "сентябрь": Console.WriteLine(9); break;

case "октябрь": Console.WriteLine(10); break;

case "ноябрь": Console.WriteLine(11); break;

case "декабрь": Console.WriteLine(12); break;

}

Console.ReadKey();

}

5. Ввести с клавиатуры число в диапазоне от 1 до 12, вывести на

экран соответствующее месяцу время года: зима, весна, лето, осень.

static void Main(string[] args)

{

Console.Write("Введите номер месяца: ");

int m = Convert.ToInt16(Console.ReadLine());

switch (m)

{

case 1:

case 2:

case 12: Console.WriteLine("зима"); break;

case 3:

case 4:

case 5: Console.WriteLine("весна"); break;

case 6:

case 7:

case 8: Console.WriteLine("лето"); break;

case 9:

case 10:

case 11: Console.WriteLine("осень"); break;

}

Console.ReadKey();

Page 291: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

261

}

6. Ввести число в диапазоне 1-99, означающее возраст человека, с

клавиатуры. Вывести это же число с дополнительным словом год, года,

лет, например, 1 год, 4 года, 12 лет и т.д.

static void Main(string[] args)

{

// если число заканчивается на 1 (кроме 11), то добавляем «год»,

// если число заканчивается на 2,3,4 (кроме 12, 13, 14), то добавляем

«года»,

// во всех остальных случаях добавляем «лет»

int a, b;

Console.Write(" Введите возраст человека: ");

a = Convert.ToInt32(Console.ReadLine());

// отделяем последнюю цифру числа

b = a % 10;

switch (b)

{ // default – все остальные случаи

case 1: if (a != 11) Console.Write(a + " год"); break;

case 2:

case 3:

case 4: if ((a < 12) || (a > 14)) Console.Write(a + " года"); break;

default: Console.Write(a + " лет"); break;

}

if ((a >= 11) && (a <= 14)) Console.Write(a + " лет");

Console.ReadKey();

}

7. Даны числа a, b. После сообщения – Выполнить действие:

суммирование (1), вычитание (2), умножение (3), деление (4), среднее

арифметическое (5) ввести номер действия и получить на экране

результат расчета.

static void Main(string[] args)

{

int k; double a, b;

Console.Write("a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("b = ");

Page 292: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

262

b = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

Console.WriteLine("введите номер действия ");

Console.Write("1.+ 2.- 3.* 4./ 5.ср.арифм ");

k = Convert.ToInt16(Console.ReadLine());

switch (k)

{

case 1: Console.Write("a + b = " + (a + b)); break;

case 2: Console.Write("a – b = " + (a - b)); break;

case 3: Console.WriteLine("a * b = " + (a * b)); break;

case 4: Console.WriteLine("a / b = " + (a / b)); break;

case 5: Console.WriteLine("ср.арифм. = " + ((a + b) / 2)); break;

}

Console.ReadKey();

}

8. Дано число a. После сообщения – Вычислить функцию: синус (1),

косинус (2), тангенс (3), котангенс (4), арктангенс (5), экспонента (6)

ввести номер вычисляемой функции и получить на экране результат

расчета.

static void Main(string[] args)

{

int k; double a;

Console.Write("a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

Console.WriteLine("введите номер функции ");

Console.Write("1)sin 2)cos 3)tg 4)ctg 5)arctg 6)exp ");

k = Convert.ToInt16(Console.ReadLine());

switch (k)

{

case 1: Console.Write("sin(a) = " + Math.Sin(a)); break;

case 2: Console.Write("cos(a) = " + Math.Cos(a)); break;

case 3: Console.WriteLine("tg(a) = " + Math.Tan(a)); break;

case 4: Console.WriteLine("ctg(a) = " + 1/Math.Tan(a)); break;

case 5: Console.WriteLine("arctg(a) = " + Math.Atan(a)); break;

case 6: Console.WriteLine("exp(a) = " + Math.Exp(a)); break;

}

Console.ReadKey();

}

Page 293: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

263

9. Используя случайное число от 0 до 9, вывести на экран название

цифры в текстовом виде.

static void Main(string[] args)

{

Random number = new Random();

int n = number.Next(1, 9);

switch (n)

{

case 1: Console.WriteLine("один"); break;

case 2: Console.WriteLine("два"); break;

case 3: Console.WriteLine("три"); break;

case 4: Console.WriteLine("четыре"); break;

case 5: Console.WriteLine("пять"); break;

case 6: Console.WriteLine("шесть"); break;

case 7: Console.WriteLine("семь"); break;

case 8: Console.WriteLine("восемь"); break;

case 9: Console.WriteLine("девять"); break;

}

Console.ReadKey();

}

10. Ввести название цифры в текстовом виде. Вывести на экран

соответствуюшую цифру от 0 до 9.

static void Main(string[] args)

{

Console.Write("Введите название цифры: ");

string n = Console.ReadLine(); // объвляем n строковой

переменной

switch (n)

{

case "один": Console.Write(1); break;

case "два": Console.Write(2); break;

case "три": Console.Write(3); break;

case "четыре": Console.Write(4); break;

case "пять": Console.Write(5); break;

case "шесть": Console.Write(6); break;

case "семь": Console.Write(7); break;

case "восемь": Console.Write(8); break;

case "девять": Console.Write(9); break;

}

Console.ReadKey();

}

Page 294: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

264

6.7 Циклическая структура. Тема № 1. Простые задания

1. Дано вещественное число Х и целое число N (>0). Найти значение

выражения

( ). Полученное число является приближенным значением

функции sin в точке Х. Проверить работу программы для Х=1, N=12.

Ответ: 0,841470984807897

static void Main(string[] args)

{

int n; long p;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i <= n; i++)

{

p=1; // вычисляем (2i+1)!

for (int j = 1; j <= 2*i+1; j++) p *= j;

s += Math.Pow(-1,i) * Math.Pow(x,2*i+1) / p;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" sin(x) = " + Math.Sin(x));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; long p;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

while (i <= n)

{

p = 1; // вычисляем (2i+1)!

for (int j = 1; j <= 2 * i + 1; j++) p *= j;

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i + 1) / p;

i++;

Page 295: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

265

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" sin(x) = " + Math.Sin(x));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; long p;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

do {

p = 1; // вычисляем (2i+1)!

for (int j = 1; j <= 2 * i + 1; j++) p *= j;

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i + 1) / p;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.WriteLine(" sin(x) = " + Math.Sin(x));

Console.ReadKey();

}

2. Дано вещественное число Х и целое число N (>0). Найти значение

выражения

( ).

Полученное число является приближенным значением функции cos в

точке Х. Проверить работу программы для Х=1, N=12. Ответ:

0,54030230586814

static void Main(string[] args)

{

int n; long p;

Double x, s = 1;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Page 296: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

266

for (int i = 1; i <= n; i++)

{

p = 1; // вычисляем (2i)!

for (int j = 1; j <= 2 * i; j++) p *= j;

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i) / p;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" cos(x) = " + Math.Cos(x));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; long p;

Double x, s = 1;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

p = 1; // вычисляем (2i)!

for (int j = 1; j <= 2 * i; j++) p *= j;

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i) / p;

i++;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" cos(x) = " + Math.Cos(x));

Console.ReadKey();

}

static void Main(string[] args)

{ int n; long p;

Double x, s = 1;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do

{

Page 297: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

267

p = 1; // вычисляем (2i)!

for (int j = 1; j <= 2 * i; j++) p *= j;

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i) / p;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.WriteLine(" cos(x) = " + Math.Cos(x));

Console.ReadKey();

}

3. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения

Полученное число является приближенным значением функции arctg в

точке Х. Проверить работу программы для Х=-0,52, N=20. Ответ: -

0,479519291992608

static void Main(string[] args)

{

int n;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i <= n; i++)

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i + 1) / (2 * i + 1);

Console.WriteLine(" s = " + s);

Console.WriteLine(" arctg(x) = " + Math.Atan(x));

Console.ReadKey();

}

static void Main(string[] args)

{ int n;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

Page 298: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

268

while (i <= n)

{

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i + 1) / (2 * i + 1);

i++;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" arctg(x) = " + Math.Atan(x));

Console.ReadKey();

}

static void Main(string[] args)

{ int n;

Double x, s = 0;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 0;

do

{

s += Math.Pow(-1, i) * Math.Pow(x, 2 * i + 1) / (2 * i + 1);

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.WriteLine(" arctg(x) = " + Math.Atan(x));

Console.ReadKey();

}

4. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения

Полученное число

является приближенным значением функции arcsin в точке Х. Проверить

работу программы для Х=-0,91, N=70. Ответ: -1,14328405839657

static void Main(string[] args)

{

int n;

Double x, s, p = 1, q = 1;

Console.Write(" x = ");

Page 299: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

269

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

s = x;

for (int i = 1; i <= n; i++)

{

p = p * (2 * i - 1); q = q * (2 * i);

s += p * Math.Pow(x, 2 * i + 1) / (q * (2 * i + 1));

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" arcsin(x) = " + Math.Atan(x/Math.Sqrt(1-

x*x)));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; long p=1, q=1;

Double x, s;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

s=x; int i = 1;

while (i <= n)

{

p=p*(2*i-1); q=q*(2*i);

s += p * Math.Pow(x,2*i+1) / (q*(2*i+1));

i++;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" arcsin(x) = " + Math.Atan(x/Math.Sqrt(1-

x*x)));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; long p=1, q=1;

Double x, s;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Page 300: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

270

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

s=x; int i = 1;

do {

p=p*(2*i-1); q=q*(2*i);

s += p * Math.Pow(x,2*i+1) / (q*(2*i+1));

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.WriteLine(" arcsin(x) = " + Math.Atan(x/Math.Sqrt(1-

x*x)));

Console.ReadKey();

}

5. Дано вещественное число Х (|X|<1) и целое число N (>0). Найти

значение выражения

Полученное число

является приближенным значением функции Проверить работу

программы для Х=0,43, N=15. Ответ: 1,19582607874254

static void Main(string[] args)

{

int n; long p=-1, q=1;

Double x, s;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

s=1;

for (int i = 1; i <= n; i++)

{

p=p*(2*i-3); q=q*(2*i);

s += p * Math.Pow(-1,i+1) * Math.Pow(x,i) / q;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" s = " + Math.Sqrt(1+x));

Console.ReadKey();

}

Page 301: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

271

static void Main(string[] args)

{

int n; long p=-1, q=1;

Double x, s;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

s=1; int i = 1;

while (i <= n)

{

p=p*(2*i-3); q=q*(2*i);

s += p * Math.Pow(-1,i+1) * Math.Pow(x,i) / q;

i++;

}

Console.WriteLine(" s = " + s);

Console.WriteLine(" s = " + Math.Sqrt(1+x));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; long p=-1, q=1;

Double x, s;

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

s=1; int i = 1;

do {

p=p*(2*i-3); q=q*(2*i);

s += p * Math.Pow(-1,i+1) * Math.Pow(x,i) / q;

i++;

}

while (i <= n);

Console.WriteLine(" s = " + s);

Console.WriteLine(" s = " + Math.Sqrt(1+x));

Console.ReadKey();

}

6. Дано целое число N (>1) и две вещественные точки на числовой

оси: A, B (A<B). Отрезок [A, B] разбит на N равных отрезков. Вывести H –

Page 302: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

272

длину каждого отрезка, а также значения функции в

точках, образующих отрезок [A,

B]: Проверить работу программы

для A= -2,18; B =5,72; N=5. Ответ: H=1,58; значения функции в точках

1,820103; 1,564642; 0,169502; 0,450644; 1,8406094.

static void Main(string[] args)

{

int n; Double a, b, h;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

h = (b - a) / n; Console.WriteLine(" h = " + h);

for (int i = 0; i < n; i++) Console.WriteLine(1 - Math.Sin(a + i *

h));

Console.ReadKey();

}

static void Main(string[] args)

{

int n; Double a, b, h;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

h = (b - a) / n; Console.WriteLine(" h = " + h);

int i = 0;

while (i < n)

{

Console.WriteLine(1 - Math.Sin(a + i * h)); i++;

}

Console.ReadKey();

}

static void Main(string[] args)

Page 303: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

273

{

int n; Double a, b, h;

Console.Write(" a = ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToDouble(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

h = (b - a) / n; Console.WriteLine(" h = " + h);

int i = 0;

do

{

Console.WriteLine(1 - Math.Sin(a + i * h)); i++;

}

while (i <= n);

Console.ReadKey();

}

7. Дано целое число N (>0). Последовательность чисел Фиббоначчи

FK (целого типа) определяется следующим образом:

Вывести элементы Проверить работу программы для

N=15. Ответ: 1; 1; 2; 3; 5; 8; 13; 21; 34; 55; 89; 144; 233;

377; 610 .

static void Main(string[] args)

{

int n, f1=1, f2=1, f;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(f1);

Console.WriteLine(f2);

for (int i = 3; i <= n; i++)

{

f=f1+f2;

Console.WriteLine(f);

f1=f2; f2=f;

}

Console.ReadKey();

Page 304: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

274

}

static void Main(string[] args)

{

int n, f1=1, f2=1, f;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(f1);

Console.WriteLine(f2);

int i = 3;

while (i <= n)

{

f=f1+f2;

Console.WriteLine(f);

f1=f2; f2=f; i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n, f1=1, f2=1, f;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(f1);

Console.WriteLine(f2);

int i = 1;

do {

f=f1+f2;

Console.WriteLine(f);

f1=f2; f2=f; i++;

}

while (i <= n);

Console.ReadKey();

}

Page 305: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

275

8. Дано целое число N (>0). Последовательность вещественных чисел

АК определяется следующим образом:

Вывести элементы Проверить работу программы

для N=5. Ответ: 1; 2; 1,6666666; 1,77777777; 1,74074074.

static void Main(string[] args)

{

int n;

double a1=1, a2=2, a;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(a1);

Console.WriteLine(a2);

for (int i = 3; i <= n; i++)

{

a=(a1+2*a2)/3;

Console.WriteLine(a);

a1=a2; a2=a;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n; double a1=1, a2=2, a;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(a1);

Console.WriteLine(a2);

int i = 3;

while (i <= n)

{

a=(a1+2*a2)/3;

Console.WriteLine(a);

a1=a2; a2=a; i++;

}

Console.ReadKey();

}

static void Main(string[] args)

Page 306: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

276

{

int n; double a1=1, a2=2, a;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(a1);

Console.WriteLine(a2);

int i = 3;

do {

a=(a1+2*a2)/3;

Console.WriteLine(a);

a1=a2; a2=a; i++;

}

while (i <= n);

Console.ReadKey();

}

9. Дано целое число N (>2). Последовательность целых чисел АК

определяется следующим образом:

Вывести элементы Проверить работу программы

для N=10. Ответ: 1; 2; 3; 3; 2; -1; -5; -10; -13; -13.

static void Main(string[] args)

{

int n, a1=1, a2=2, a3=3, a;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(a1);

Console.WriteLine(a2);

Console.WriteLine(a3);

for (int i = 4; i <= n; i++)

{

a=a3+a2-2*a1;

Console.WriteLine(a);

a1=a2; a2=a3; a3=a;

}

Console.ReadKey();

}

Page 307: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

277

static void Main(string[] args)

{

int n, a1=1, a2=2, a3=3, a;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(a1);

Console.WriteLine(a2);

Console.WriteLine(a3);

int i = 4;

while (i <= n)

{

a=a3+a2-2*a1;

Console.WriteLine(a);

a1=a2; a2=a3; a3=a; i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int n, a1=1, a2=2, a3=3, a;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(a1);

Console.WriteLine(a2);

Console.WriteLine(a3);

int i = 3;

do {

a=a3+a2-2*a1;

Console.WriteLine(a);

a1=a2; a2=a3; a3=a; i++;

}

while (i <= n);

Console.ReadKey();

}

Page 308: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

278

10. Дано целое число N (>0). Найти сумму

Чтобы избежать целочисленного переполнения, вычислять слагаемые этой

суммы с помощью вещественной переменной и выводить результат как

вещественное число. Проверить работу программы для N=14 . Ответ:

33087205.

static void Main(string[] args)

{

int n;

double s=0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++) s = s + Math.Pow(i,n-i+1);

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

double s=0;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

while (i <= n)

{

s = s + Math.Pow (i, n-i+1);

i++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n;

double s=0;

Page 309: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

279

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = 1;

do {

s = s + Math.Pow(i, n-i+1);

i++;

}

while (i <= n);

Console.WriteLine("s="+s);

Console.ReadKey();

}

11. Даны целые положительные числа A и B (A < B). Вывести все

целые числа от A до B включительно; при этом каждое число должно

выводиться столько раз, каково его значение (например, число 3

выводится 3 раза). Проверить работу программы для A=2, B=5 .

Ответ:

static void Main(string[] args)

{

int a, b;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

for (int i = a; i <= b; i++)

{

for (int j = 0; j < i; j++) Console.Write(i+" ");

Console.WriteLine();

}

Console.ReadKey();

}

Page 310: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

280

static void Main(string[] args)

{

int a, b, i, j;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i=a;

while (i <= b)

{

j = 0;

while (j < i)

{

Console.Write(i+" "); j++;

}

Console.WriteLine();

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int a, b, i, j;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i=a;

do {

j = 0;

do {

Console.Write(i+" ");

j++;

} while (j < i);

Console.WriteLine();

i++;

} while (i <= b);

Console.ReadKey();

}

Page 311: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

281

12. Даны целые положительные числа A и B (A < B). Вывести все

целые числа от A до B включительно; при этом число А должно

выводиться 1 раз, число А + 1 должно выводиться 2 раза и т.д. Проверить

работу программы для A=3, B=6 .

Ответ:

static void Main(string[] args)

{

int a, b;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

for (int i = a; i <= b; i++)

{

for (int j = 0; j <= i-a; j++) Console.Write(i+" ");

Console.WriteLine();

}

Console.ReadKey();

}

static void Main(string[] args)

{

int a, b, i, j;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i=a;

while (i <= b)

{

j = 0;

while (j <= i-a)

{

Console.Write(i+" ");

j++;

}

Page 312: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

282

Console.WriteLine();

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int a, b, i, j;

Console.Write(" a = ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write(" b = ");

b = Convert.ToInt32(Console.ReadLine());

i=a;

do

{

j = 0;

do

{

Console.Write(i + " ");

j++;

} while (j <= i - a);

Console.WriteLine();

i++;

} while (i <= b);

Console.ReadKey();

}

Page 313: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

283

6.8 Циклическая структура. Тема № 4. Стандартные задания

1. Вычислить сумму ряда при М=15; Х=0,63; S=0,697346848995981.

M

n n

n

en

Xarctgn

nXS

1 )(!

))1(1(ln

static void Main(string[] args)

{

int n, m;

Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.PI*Math.Log(Math.Sqrt(x+n))*(1+Math.Pow(-1,n));

s2 = p*Math.Atan(x/n)*Math.Exp(n);

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m;

Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.PI*Math.Log(Math.Sqrt(x+n))*(1+Math.Pow(-1,n));

s2 = p*Math.Atan(x/n)*Math.Exp(n);

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Page 314: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

284

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m;

Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.PI*Math.Log(Math.Sqrt(x+n))*(1+Math.Pow(-1,n));

s2 = p*Math.Atan(x/n)*Math.Exp(n);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

2. Вычислить сумму ряда при М=16; Х=13,9; S=3112099,18899483.

S=

M

nn

Xnn

nnX

n

XenXn

1 !)ln()1(

)cos(

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Pow(n,n)*Math.Abs(x-n)*Math.Exp(n-x)*

Math.Cos(x/n);

s2 = Math.Pow(-1,n)*Math.Sqrt(Math.PI+Math.Log(x*n))*p;

s += s1 / s2;

Page 315: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

285

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Pow(n,n)*Math.Abs(x-n)*Math.Exp(n-

x)*Math.Cos(x/n);

s2 = Math.Pow(-1,n)*Math.Sqrt(Math.PI+Math.Log(x*n))*p;

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Pow(n,n)*Math.Abs(x-n)*Math.Exp(n-

x)*Math.Cos(x/n);

s2 = Math.Pow(-1,n)*Math.Sqrt(Math.PI+Math.Log(x*n))*p;

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

Page 316: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

286

}

3. Вычислить сумму ряда при М=12; Х=0,54; S=90,1591936221826.

S=

M

n

nn

Xnn

X

Xntge

1 2 !)(sinln

))()(1)1((

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Exp(-Math.Sqrt(n))*(Math.Pow(-1,n)-1)*(Math.PI-

Math.Tan(n+x));

s2 = Math.Pow(Math.Log(Math.Sin(x/n)),2)*p*x;

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Exp(-Math.Sqrt(n))*(Math.Pow(-1,n)-1)*(Math.PI-

Math.Tan(n+x));

s2 = Math.Pow(Math.Log(Math.Sin(x/n)),2)*p*x;

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Page 317: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

287

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Exp(-Math.Sqrt(n))*(Math.Pow(-1,n)-1)*(Math.PI-

Math.Tan(n+x));

s2 = Math.Pow(Math.Log(Math.Sin(x/n)),2)*p*x;

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

4. Вычислить сумму ряда при М=19; Х=23,94; S=0,130849464884802.

S=

M

n n

n

Xarctge

n

Xnn

1

2 cosln)!(sin

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Sin(p)*Math.Sqrt(Math.Abs(Math.Log(n)

+Math.Cos(x/n)));

s2 = Math.Exp(n)+Math.PI*Math.Atan(x/n);

Page 318: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

288

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Sin(p)*Math.Sqrt(Math.Abs(Math.Log(n)

+Math.Cos(x/n)));

s2 = Math.Exp(n)+Math.PI*Math.Atan(x/n);

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Sin(p)*Math.Sqrt(Math.Abs(Math.Log(n)

+Math.Cos(x/n)));

s2 = Math.Exp(n)+Math.PI*Math.Atan(x/n);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Page 319: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

289

Console.ReadKey();

}

5. Вычислить сумму ряда при М=18; Х=-3,37; S=1,94293785363179.

S=

M

n

nn Xarctgn1

)!ln())2ln((

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.PI+Math.Sqrt(Math.Log(n+2));

s2 = Math.Pow(s1,-Math.Log(p))

*Math.Atan(Math.Abs(Math.Pow(x,n)));

s += s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.PI+Math.Sqrt(Math.Log(n+2));

s2 = Math.Pow(s1,-Math.Log(p))

*Math.Atan(Math.Abs(Math.Pow(x,n)));

s += s2; n++;

}

Console.WriteLine("s="+s);

Page 320: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

290

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.PI+Math.Sqrt(Math.Log(n+2));

s2 = Math.Pow(s1,-Math.Log(p))

*Math.Atan(Math.Abs(Math.Pow(x,n)));

s += s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

6. Вычислить сумму ряда при М=15; Х=1000,7;

S=0,921491305579878.

S=

M

n

n

n

n

X

1 !

coslnln

)1)1((

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 =

Math.Abs(Math.Log(Math.Abs(Math.Log(Math.Abs(Math.Cos(x/n))))));

s2 = (Math.Pow(-1,n)+1)*Math.Sqrt(s1/(p*Math.PI));

Page 321: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

291

s += s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 =

Math.Abs(Math.Log(Math.Abs(Math.Log(Math.Abs(Math.Cos(x/n))))));

s2 = (Math.Pow(-1,n)+1)*Math.Sqrt(s1/(p*Math.PI));

s += s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 =

Math.Abs(Math.Log(Math.Abs(Math.Log(Math.Abs(Math.Cos(x/n))))));

s2 = (Math.Pow(-1,n)+1)*Math.Sqrt(s1/(p*Math.PI));

s += s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Page 322: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

292

Console.ReadKey();

}

7. Вычислить сумму ряда при М=17; Х=0,3; S=0,31380168987769.

S=

M

n

nn

Xtg

Xne

n

n

1

3

)(

)sin()1)1(()

12

2(

static void Main(string[] args)

{

int n, m; Double x, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

s1 = Math.Pow(2*n/(2*n+1.0),3)*Math.Exp(-Math.Sqrt(n));

s2 = (Math.Pow(-1,n)+1)*Math.Sin(x*n)/Math.Tan(Math.PI*x);

s += s1 * s2;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

s1 = Math.Pow(2*n/(2*n+1.0),3)*Math.Exp(-Math.Sqrt(n));

s2 = (Math.Pow(-1,n)+1)*Math.Sin(x*n)/Math.Tan(Math.PI*x);

s += s1 * s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

Page 323: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

293

{

int n=1, m; Double x, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

s1 = Math.Pow(2*n/(2*n+1.0),3)*Math.Exp(-Math.Sqrt(n));

s2 = (Math.Pow(-1,n)+1)*Math.Sin(x*n)/Math.Tan(Math.PI*x);

s += s1 * s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

8. Вычислить сумму ряда при М=8; Х=20; S=0,0127560167173928.

S=

M

n

n

nnnn

n

Xarctgen

12 )1ln(!)3(

!cos

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Cos(p)*Math.Exp(-Math.PI*n)*Math.Atan(x/n);

s2 = (n*n+3*n)*p*Math.Log(n+1);

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

Page 324: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

294

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Cos(p)*Math.Exp(-Math.PI*n)*Math.Atan(x/n);

s2 = (n*n+3*n)*p*Math.Log(n+1);

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Cos(p)*Math.Exp(-Math.PI*n)*Math.Atan(x/n);

s2 = (n*n+3*n)*p*Math.Log(n+1);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

9. Вычислить сумму ряда при М=10; Х=7,5; S=-0,474311426812753.

S=

M

n

nn

nXnn

ne

n

Xtg

1 !

))1(1(!ln)

cos

sin(

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2, s3;

Page 325: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

295

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 =

Math.Tan(Math.Sin(x)/Math.Cos(n))*Math.Exp(Math.Sqrt(n));

s2 = Math.Log(p)*(1-Math.Pow(-1,n));

s3 = p*Math.Sqrt(n)*Math.Abs(x-n);

s += s1*s2 / s3;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 =

Math.Tan(Math.Sin(x)/Math.Cos(n))*Math.Exp(Math.Sqrt(n));

s2 = Math.Log(p)*(1-Math.Pow(-1,n));

s3 = p*Math.Sqrt(n)*Math.Abs(x-n);

s += s1*s2 / s3; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Page 326: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

296

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 =

Math.Tan(Math.Sin(x)/Math.Cos(n))*Math.Exp(Math.Sqrt(n));

s2 = Math.Log(p)*(1-Math.Pow(-1,n));

s3 = p*Math.Sqrt(n)*Math.Abs(x-n);

s += s1*s2 / s3; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

10. Вычислить сумму ряда при М=19; Х=2,5; S=0,020168586765763.

S=

M

n

nn

XnnnXn

n

ne

12 )cos)((

2

1cos)1ln(

static void Main(string[] args)

{

int n, m; Double x, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

s1 = Math.Abs(Math.Log(Math.Pow(Math.PI,n)+1));

s2 = Math.Exp(-n)*Math.Cos((n+1)/(n+2));

s3 = (n+x)*(n*n+n*Math.PI-Math.Cos(n))*x;

s += s1*s2 / s3;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, s=0, s1, s2, s3;

Console.Write(" m = ");

Page 327: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

297

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

s1 = Math.Abs(Math.Log(Math.Pow(Math.PI,n)+1));

s2 = Math.Exp(-n)*Math.Cos((n+1)/(n+2));

s3 = (n+x)*(n*n+n*Math.PI-Math.Cos(n))*x;

s += s1*s2 / s3; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

s1 = Math.Abs(Math.Log(Math.Pow(Math.PI,n)+1));

s2 = Math.Exp(-n)*Math.Cos((n+1)/(n+2));

s3 = (n+x)*(n*n+n*Math.PI-Math.Cos(n))*x;

s += s1*s2 / s3; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

11. Вычислить сумму ряда при М=10; Х=4; S=12,2503730686875.

S=

M

n

X

X

X

n

n

nn

tgne

14

cos

cos

ln

1

!

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Page 328: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

298

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Exp(-Math.Cos(x))*Math.Tan(p);

s2 =

(Math.Pow(Math.PI,x)+Math.Log(n))/Math.Pow(Math.Cos(n),4);

s3 = Math.Sqrt(n)+Math.Pow(n,x)-1+Math.PI;

s += s1*Math.Sqrt(s2) / s3;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Exp(-Math.Cos(x))*Math.Tan(p);

s2 =

(Math.Pow(Math.PI,x)+Math.Log(n))/Math.Pow(Math.Cos(n),4);

s3 = Math.Sqrt(n)+Math.Pow(n,x)-1+Math.PI;

s += s1*Math.Sqrt(s2) / s3; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2, s3;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Page 329: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

299

do

{

p *= n;

s1 = Math.Exp(-Math.Cos(x))*Math.Tan(p);

s2 =

(Math.Pow(Math.PI,x)+Math.Log(n))/Math.Pow(Math.Cos(n),4);

s3 = Math.Sqrt(n)+Math.Pow(n,x)-1+Math.PI;

s += s1*Math.Sqrt(s2) / s3; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

12. Вычислить сумму ряда при М=11; Х=9,32; S=-2,78439423212793.

S=

M

n

n

nXnn

en

1 cos3!

))ln(ln(

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Log(Math.Log(Math.PI*n))-Math.Exp(Math.Sqrt(n));

s2 = p+Math.Sqrt(n-x+3*Math.PI)+Math.Abs(Math.Cos(n));

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Page 330: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

300

while (n <= m)

{

p *= n;

s1 = Math.Log(Math.Log(Math.PI*n))-Math.Exp(Math.Sqrt(n));

s2 = p+Math.Sqrt(n-x+3*Math.PI)+Math.Abs(Math.Cos(n));

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Log(Math.Log(Math.PI*n))-Math.Exp(Math.Sqrt(n));

s2 = p+Math.Sqrt(n-x+3*Math.PI)+Math.Abs(Math.Cos(n));

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

13. Вычислить сумму ряда при М=11; Х=55; S=523736,636382686.

S=

M

n

nnn

nnXtgn

Xnarctge

1

ln

)!3)(3()1)!

1ln(cos(

)(

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

Page 331: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

301

{

p *= n;

s1 = Math.Pow(Math.PI, Math.Log(n)) * Math.Exp(-n);

s1 = s1*Math.Atan(n) * Math.Pow(x, n)/Math.Tan(x+n-3);

s2 = Math.Log(Math.Cos(1 / p) + 1) * p * (n + 1) * (n + 2) * (n +

3);

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Pow(Math.PI,Math.Log(n))*Math.Exp(-n);

s1 = s1*Math.Atan(n)*Math.Pow(x,n)/Math.Tan(x+n-3);

s2 = Math.Log(Math.Cos(1/p)+1)*p*(n+1)*(n+2)*(n+3);

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Pow(Math.PI, Math.Log(n)) * Math.Exp(-n);

Page 332: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

302

s1 = s1 * Math.Atan(n) * Math.Pow(x, n) / Math.Tan(x + n - 3);

s2 = Math.Log(Math.Cos(1 / p) + 1) * p * (n + 1) * (n + 2) * (n +

3);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

14. Вычислить сумму ряда при М=13; Х=26; S=6,63264184229042.

S=

M

nn

n

Xnnn

n

1 sin1

)))2!ln(ln(ln()1)1((

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = (Math.Pow(-1,n)-1)*Math.Log(Math.Log(Math.Log(p+2)));

s2 = Math.Abs(1-

n+Math.Sqrt(n))*Math.Pow(n,Math.Sqrt(n))*Math.Sin(x);

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

Page 333: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

303

s1 = (Math.Pow(-1,n)-1)*Math.Log(Math.Log(Math.Log(p+2)));

s2 = Math.Abs(1-

n+Math.Sqrt(n))*Math.Pow(n,Math.Sqrt(n))*Math.Sin(x);

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = (Math.Pow(-1,n)-1)*Math.Log(Math.Log(Math.Log(p+2)));

s2 = Math.Abs(1-

n+Math.Sqrt(n))*Math.Pow(n,Math.Sqrt(n))*Math.Sin(x);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

15. Вычислить сумму ряда при М=10; Х=-22,8; S=-1,020718582516.

S=

M

n

nXn

nnnn

n

Xe

1

1

!cos)1ln()12(

3!sin)1(

static void Main(string[] args)

{

int n, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

Page 334: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

304

p *= n;

s1 = Math.Pow(-

1,n)*Math.Exp(1+x)*Math.Pow(Math.PI,Math.Sqrt(n));

s2 =

Math.Abs(Math.Sin(x/(p+3)))/(n*(2*n+1)*Math.Log(n+1)*Math.Cos(p));

s += s1 / s2;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Pow(-

1,n)*Math.Exp(1+x)*Math.Pow(Math.PI,Math.Sqrt(n));

s2 =

Math.Abs(Math.Sin(x/(p+3)))/(n*(2*n+1)*Math.Log(n+1)*Math.Cos(p));

s += s1 / s2; n++;

}

Console.WriteLine("s="+s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n=1, m; Double x, p=1, s=0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

Page 335: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

305

s1 = Math.Pow(-

1,n)*Math.Exp(1+x)*Math.Pow(Math.PI,Math.Sqrt(n));

s2 =

Math.Abs(Math.Sin(x/(p+3)))/(n*(2*n+1)*Math.Log(n+1)*Math.Cos(p));

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s="+s);

Console.ReadKey();

}

16. Вычислить сумму ряда при М=7; Х=5,7; S=0,174770368268743.

S=

M

n

n

n

XnnX

ennn

Xtg

1

)1()ln()!(

static void Main(string[] args)

{

int n, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Tan(x / n) + Math.Sqrt(n) + Math.Pow(n, Math.PI);

s1 = s1 + Math.Exp(-Math.Sqrt(n));

s2 = (Math.PI + x + p) * Math.Log(n + x) * Math.Pow(-1, n);

s += s1 / s2;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

Page 336: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

306

{

p *= n;

s1 = Math.Tan(x / n) + Math.Sqrt(n) + Math.Pow(n, Math.PI);

s1 = s1 + Math.Exp(-Math.Sqrt(n));

s2 = (Math.PI + x + p) * Math.Log(n + x) * Math.Pow(-1, n);

s += s1 / s2; n++;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Tan(x / n) + Math.Sqrt(n) + Math.Pow(n, Math.PI);

s1 = s1 + Math.Exp(-Math.Sqrt(n));

s2 = (Math.PI + x + p) * Math.Log(n + x) * Math.Pow(-1, n);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s=" + s);

Console.ReadKey();

}

17. Вычислить сумму ряда при М=14; Х=1; S=0,075495527097007.

S=

M

n

n

nXXn

n

Xtgen

1 )ln()!(

!

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

Page 337: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

307

do

{

p *= n;

s1 = p * Math.Exp(-Math.Sqrt(Math.PI * n)) * Math.Tan(x / n);

s2 = (p + x) * Math.PI * Math.Log(x + n);

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = p * Math.Exp(-Math.Sqrt(Math.PI * n)) * Math.Tan(x / n);

s2 = (p + x) * Math.PI * Math.Log(x + n);

s += s1 / s2; n++;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = p * Math.Exp(-Math.Sqrt(Math.PI * n)) * Math.Tan(x / n);

s2 = (p + x) * Math.PI * Math.Log(x + n);

s += s1 / s2; n++;

Page 338: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

308

} while (n <= m);

Console.WriteLine("s=" + s);

Console.ReadKey();

}

18. Вычислить сумму ряда при М=7; Х=13; S=0,194287289954729.

S=

M

n

X

nn

nX

ntgnX

1cos)!ln(

)()sin(

static void Main(string[] args)

{

int n, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

s1 = Math.Abs(Math.Sin(x + n)) * Math.Tan(n / (x + n));

s2 = Math.Log(p) + Math.Sqrt(Math.PI + Math.Abs(Math.Cos(n

/ x)));

s += s1 / s2;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Abs(Math.Sin(x + n)) * Math.Tan(n / (x + n));

Page 339: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

309

s2 = Math.Log(p) + Math.Sqrt(Math.PI + Math.Abs(Math.Cos(n

/ x)));

s += s1 / s2; n++;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Abs(Math.Sin(x + n)) * Math.Tan(n / (x + n));

s2 = Math.Log(p) + Math.Sqrt(Math.PI + Math.Abs(Math.Cos(n

/ x)));

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s=" + s);

Console.ReadKey();

}

19. Вычислить сумму ряда при М=7; Х=20; S=4,82623603894043.

S=

M

n n

tgn

n

XnXn

enne

1 cos))!ln(ln(

)ln(sin

static void Main(string[] args)

{

int n, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

for (n = 1; n <= m; n++)

{

p *= n;

Page 340: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

310

s1 = Math.Abs(Math.Sin(n)) * Math.Sqrt(Math.Log(n +

Math.Exp(1)));

s1 = (Math.Exp(Math.Tan(n)) + s1) / Math.Pow(n, n);

s2 = Math.Log(x + Math.Log(p)) * Math.Abs(Math.Cos(x / n));

s += s1 / s2;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

while (n <= m)

{

p *= n;

s1 = Math.Abs(Math.Sin(n)) * Math.Sqrt(Math.Log(n +

Math.Exp(1)));

s1 = (Math.Exp(Math.Tan(n)) + s1) / Math.Pow(n, n);

s2 = Math.Log(x + Math.Log(p)) * Math.Abs(Math.Cos(x / n));

s += s1 / s2; n++;

}

Console.WriteLine("s=" + s);

Console.ReadKey();

}

static void Main(string[] args)

{

int n = 1, m; Double x, p = 1, s = 0, s1, s2;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" x = ");

x = Convert.ToDouble(Console.ReadLine());

do

{

p *= n;

s1 = Math.Abs(Math.Sin(n)) * Math.Sqrt(Math.Log(n +

Math.Exp(1)));

Page 341: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

311

s1 = (Math.Exp(Math.Tan(n)) + s1) / Math.Pow(n, n);

s2 = Math.Log(x + Math.Log(p)) * Math.Abs(Math.Cos(x / n));

s += s1 / s2; n++;

} while (n <= m);

Console.WriteLine("s=" + s);

Console.ReadKey();

}

Page 342: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

312

6.9 Циклическая структура. Тема № 5. Простые нестандартные

задания

1. Сколько существует пар двузначных чисел, таких, что, сложив

первое число с суммой цифр второго числа, получим 100, и сложив второе

число с суммой цифр первого числа, получим 100? Ответ: 4.

Вариант № 1

static void Main(string[] args)

{

int k = 0;

for (int a = 1; a <= 9; a++)

for (int b = 0; b <= 9; b++)

for (int c = 1; c <= 9; c++)

for (int d = 0; d <= 9; d++)

if ((a * 10 + b + c + d == 100) && (c * 10 + d + a + b ==

100) && (a * 10 + b != c * 10 + d)) k++;

Console.WriteLine(k / 2);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d, k = 0;

for (int i = 10; i <= 99; i++)

for (int j = 10; j <= 99; j++)

{

a = i / 10;

b = i % 10;

c = j / 10;

d = j % 10;

if ((i + c + d == 100) && (j + a + b == 100) && (i != j)) k++;

}

Console.WriteLine(k / 2);

Console.ReadKey();

}

Вариант № 3

static void Main(string[] args)

{

Page 343: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

313

int k = 0;

for (int i = 10; i <= 99; i++)

for (int j = 10; j <= 99; j++)

if ((i + j / 10 + j % 10 == 100) && (j + i / 10 + i % 10 == 100)

&& (i != j)) k++;

Console.WriteLine(k / 2);

Console.ReadKey();

}

2. Число Армстронга – такое число из К цифр, для которого сумма К-

х степеней его цифр равна самому числу. Например, 153=13+53+33. Найти

все числа Армстронга из трех цифр. Ответ: 153, 370, 371, 407.

Вариант № 1

static void Main(string[] args)

{

for (int a = 1; a <= 9; a++)

for (int b = 0; b <= 9; b++)

for (int c = 0; c <= 9; c++)

if (100 * a + 10 * b + c == a * a * a + b * b * b + c * c * c)

Console.WriteLine(100 * a + 10 * b + c);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c;

for (int i = 100; i <= 999; i++)

{

a = i / 100;

b = (i / 10) % 10;

c = i % 10;

if (i == a * a * a + b * b * b + c * c * c)

Console.WriteLine(i);

}

Console.ReadKey();

}

Вариант № 3

static void Main(string[] args)

{

Page 344: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

314

for (int i = 100; i <= 999; i++)

if (i == Math.Pow(i / 100, 3) + Math.Pow((i / 10) % 10, 3) +

Math.Pow(i % 10, 3))

Console.WriteLine(i);

Console.ReadKey();

}

3. Найти все четырехзначные числа, оканчивающиеся на 91, которые

после вычеркивания этих цифр уменьшаются в целое число раз. Ответ:

1391, 9191.

Вариант № 1

static void Main(string[] args)

{

int i, a;

for (i = 1091; i <= 9991; i++)

{

a = (i - 91) / 100;

if ((i % a == 0) && (i % 100 == 91)) Console.WriteLine(i);

}

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

for (int i = 10; i <= 99; i++)

if ((100 * i + 91) % i == 0) Console.WriteLine(100 * i + 91);

Console.ReadKey();

}

4. Четырехзначное число считается счастливым, если сумма его

первых двух цифр равна сумме последних двух цифр. По другой версии,

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

второй половины равна 100. Найти все 4-значные числа, счастливые

одновременно и в том, и в другом смысле. Ответ: 5050.

static void Main(string[] args)

{

for (int a = 1; a <= 9; a++)

for (int b = 0; b <= 9; b++)

Page 345: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

315

for (int c = 0; c <= 9; c++)

for (int d = 0; d <= 9; d++)

if ((a + b == c + d) && (10 * a + b + 10 * c + d == 100))

Console.WriteLine(1000 * a + 100 * b + 10 * c + d);

Console.ReadKey();

}

5. Найти четырехзначное число, которое увеличивается в 4 раза при

перестановке его цифр в обратном порядке. Ответ: 2178.

Вариант № 1

static void Main(string[] args)

{

int a, b, c, d, x, y;

for (a = 1; a <= 9; a++)

for (b = 0; b <= 9; b++)

for (c = 0; c <= 9; c++)

for (d = 0; d <= 9; d++)

{

x = 1000 * a + 100 * b + 10 * c + d;

y = 1000 * d + 100 * c + 10 * b + a;

if (x * 4 == y) Console.WriteLine(x);

}

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d;

for (int i = 1000; i <= 9999; i++)

{

a = i % 10;

b = (i / 10) % 10;

c = (i / 100) % 10;

d = i / 1000;

if (i * 4 == 1000 * a + 100 * b + 10 * c + d)

Console.WriteLine(i);

}

Console.ReadKey();

}

Page 346: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

316

6. Сколько существует четырехзначных чисел, таких, что если из него

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

получится куб натурального числа? Ответ: 126.

Вариант № 1

static void Main(string[] args)

{

int a, b, c, d, abcd, dcba, x, k = 0;

for (a = 1; a <= 9; a++)

for (b = 0; b <= 9; b++)

for (c = 0; c <= 9; c++)

for (d = 0; d <= 9; d++)

for (x = 1; x <= 25; x++)

{

abcd = 1000 * a + 100 * b + 10 * c + d;

dcba = 1000 * d + 100 * c + 10 * b + a;

if (abcd - dcba == x * x * x) k++;

}

Console.WriteLine(k);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d, k = 0;

for (int i = 1000; i <= 9999; i++)

for (int x = 1; x <= 25; x++)

{

a = i % 10;

b = (i / 10) % 10;

c = (i / 100) % 10;

d = i / 1000;

if (i - (1000 * a + 100 * b + 10 * c + d) == x * x * x) k++;

}

Console.WriteLine(k);

Console.ReadKey();

}

Вариант № 3

static void Main(string[] args)

{

Page 347: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

317

int k = 0;

for (int i = 1000; i <= 9999; i++)

for (int x = 1; x <= 25; x++)

if (i - (1000 * (i % 10) + 100 * ((i / 10) % 10) +

10 * ((i / 100) % 10) + i / 1000) == x * x * x) k++;

Console.WriteLine(k);

Console.ReadKey();

}

7. У «счастливых» шестизначных билетов сумма первых трех цифр

равна сумме последних трех цифр. Сколько их? Ответ: 55252.

Вариант № 1

static void Main(string[] args)

{

int k = 0;

for (int a = 0; a <= 9; a++)

for (int b = 0; b <= 9; b++)

for (int c = 0; c <= 9; c++)

for (int d = 0; d <= 9; d++)

for (int e = 0; e <= 9; e++)

for (int f = 0; f <= 9; f++)

if (a + b + c == d + e + f) k++;

Console.WriteLine(k);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d, e, f, k = 0;

for (int i = 1000000; i <= 1999999; i++)

{

a = i % 10;

b = (i / 10) % 10;

c = (i / 100) % 10;

d = (i / 1000) % 10;

e = (i / 10000) % 10;

f = (i / 100000) % 10;

if (a + b + c == d + e + f) k++;

}

Console.WriteLine(k);

Page 348: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

318

Console.ReadKey();

}

Вариант № 3

static void Main(string[] args)

{

int s1=0, s2=0, k = 0;

for (int i = 1000000; i <= 1999999; s1=0, s2=0, i++ )

{

for (int j = 0; j <= 2; j++)

{

s1 += i / (int)Math.Pow(10, j) % 10;

s2 += i / 1000 / (int)Math.Pow(10, j) % 10;

}

if (s1 == s2) k++;

}

Console.WriteLine(k);

Console.ReadKey();

}

8. Вывести на экран среднее арифметическое цифр натурального

многоразрядного числа (количество разрядов <20). Проверить для

5498071. Ответ: 4,85714285714286.

Вариант № 1

static void Main(string[] args)

{

ulong n; double s = 0; int i;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

for (i = 0; n != 0; i++)

{

s += n % 10; n /= 10;

}

Console.WriteLine("среднее арифметическое = " + s / i);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

Page 349: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

319

ulong n; double s = 0; int i = 0;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

for (; n != 0; i++, s += n % 10, n /= 10) ;

Console.WriteLine("среднее арифметическое = " + s / i);

Console.ReadKey();

}

static void Main(string[] args)

{

ulong n; double s = 0; int i = 0;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

while (n != 0)

{

s += n % 10;

n /= 10;

i++;

}

Console.WriteLine("среднее арифметическое = " + s / i);

Console.ReadKey();

}

static void Main(string[] args)

{

ulong n; double s = 0; int i = 0;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

do

{

s += n % 10;

n /= 10;

i++;

} while (n != 0);

Console.WriteLine("среднее арифметическое = " + s / i);

Console.ReadKey();

}

Page 350: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

320

9. Вывести на экран среднее геометрическое цифр натурального

многоразрядного числа (количество разрядов <20). Проверить для 186612.

Ответ: 2,88449914061482.

Вариант № 1

static void Main(string[] args)

{

ulong n; double p = 1; int i;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

for (i = 0; n != 0; i++)

{

p *= n % 10; n /= 10;

}

Console.WriteLine("среднее геометрическое = " + Math.Pow(p,

1.0 / i));

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

ulong n; double p = 1; int i = 0;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

for (; n != 0; i++, p *= n % 10, n /= 10) ;

Console.WriteLine("среднее геометрическое = " + Math.Pow(p,

1.0 / i));

Console.ReadKey();

}

static void Main(string[] args)

{

ulong n; double p = 1; int i = 0;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

while (n != 0)

{

p *= n % 10;

Page 351: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

321

n /= 10;

i++;

}

Console.WriteLine("среднее геометрическое = " + Math.Pow(p,

1.0 / i));

Console.ReadKey();

}

static void Main(string[] args)

{

ulong n; double p = 1; int i = 0;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

do

{

p *= n % 10;

n /= 10;

i++;

} while (n != 0);

Console.WriteLine("среднее геометрическое = " + Math.Pow(p,

1.0 / i));

Console.ReadKey();

}

10. Вместо звездочки поставьте цифру так, чтобы полученное из

19*83 число стало точным кубом. Ответ: 6.

static void Main(string[] args)

{

int i, j;

for (i = 10; i < 50; i++)

for (j = 0; j < 10; j++)

if (19083 + j * 100 == i * i * i)

{

Console.WriteLine(j);

Console.ReadKey();

return;

}

}

static void Main(string[] args)

Page 352: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

322

{

int i = 10, j = 0;

while (i < 50)

{

while (j < 10)

{

if (19083 + j * 100 == i * i * i)

{

Console.WriteLine(j);

Console.ReadKey();

return;

}

j++;

}

i++;

j = 0;

}

}

static void Main(string[] args)

{

int i = 10, j = 0;

do

{

do

{

if (19083 + j * 100 == i * i * i)

{

Console.WriteLine(j);

Console.ReadKey();

return;

}

j++;

} while (j < 10);

i++;

j = 0;

} while (i < 50);

}

Page 353: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

323

11. Найти наименьшее натуральное число A, такое, что A*2 - квадрат,

а A*3 – куб целого числа. Ответ: 72.

Вариант № 1

static void Main(string[] args)

{

int a;

for (a = 1; a <= 9999999; a++)

for (int i = 1; i < a; i++)

for (int j = 1; j < a; j++)

if ((i * i == a * 2) && (j * j * j == a * 3)) goto m1;

m1: Console.WriteLine(a);

Console.ReadKey();

}

12. Найти наименьший полный квадрат, не оканчивающийся двумя

нулями, такой, что после вычеркивания двух его последних цифр

получается снова полный квадрат. Ответ: 121.

Вариант № 1

static void Main(string[] args)

{

int a;

for (a = 101; a <= 9999999; a++)

for (int i = 1; i < a; i++)

for (int j = 1; j < a; j++)

if ((a == i * i) && (a / 100 == j * j)) goto m1;

m1: Console.WriteLine(a);

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a; double f, g;

for (a = 101; a <= 9999999; a++)

{

f = Math.Sqrt(a);

g = Math.Sqrt(a / 100);

if ((f == (int)f) && (g == (int)g)) break;

}

Console.WriteLine(a);

Page 354: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

324

Console.ReadKey();

}

Вариант № 3

static void Main(string[] args)

{

int i, j, a;

for (a = 101; a <= 9999999; a++)

{

i = (int)Math.Sqrt(a);

j = (int)Math.Sqrt(a / 100);

if ((a == i * i) && (a / 100 == j * j)) break;

}

Console.WriteLine(a);

Console.ReadKey();

}

13. Моему знакомому в x2 году исполнится x лет. В каком году это

произойдет? Ответ: 2025.

static void Main(string[] args)

{

int i=40;

for (; i * i < 2015; i++) ;

Console.WriteLine (i * i);

Console.ReadKey();

}

static void Main(string[] args)

{

int x = 40;

while (x * x < 2015) x++;

Console.WriteLine(x * x);

Console.ReadKey();

}

static void Main(string[] args)

{

int x = 40;

Page 355: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

325

do x++; while (x * x < 2015);

Console.WriteLine(x * x);

Console.ReadKey();

}

14. Любое натуральное число Р (Р>7) можно представить в виде

Р=3*А+5*В. Сколько пар А и В существует для Р=2867? Ответ: 191.

static void Main(string[] args)

{

int k = 0, p = 2867;

for (int a = 1; a < p; a++)

for (int b = 1; b < p; b++)

if (3 * a + 5 * b == p) k++;

Console.WriteLine(k);

Console.ReadKey();

}

15. Год високосный, если его номер делится на 4, за исключением тех,

которые делятся на 100 и не делятся на 400. Сколько високосных годов

было между 1000 и 2000 годами? Ответ: 243.

static void Main(string[] args)

{

int i, k = 0;

for (i = 1000; i <= 2000; i++)

if ((i % 4 != 0) || ((i % 100 == 0) && (i % 400 != 0))) ;

else k++;

Console.WriteLine("количество високосных годов = " + k);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 1000, k = 0;

while (i <= 2000)

{

if ((i % 4 != 0) || ((i % 100 == 0) && (i % 400 != 0))) ;

else k++;

i++;

}

Page 356: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

326

Console.WriteLine("количество високосных годов = " + k);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 1000, k = 0;

do

{

if ((i % 4 != 0) || ((i % 100 == 0) && (i % 400 != 0))) ;

else k++;

i++;

} while (i <= 2000);

Console.WriteLine("количество високосных годов = " + k);

Console.ReadKey();

}

16. Написать программу для расчета числа сочетаний )!(!

!

mnm

nСm

n

Проверить для m=3, n=6. Ответ: 20.

Вариант № 1

static void Main(string[] args)

{

int m, n, mf=1, nf=1, nmf=1;

Console.Write (" m=");

m = Convert.ToInt32 (Console.ReadLine());

Console.Write (" n=");

n = Convert.ToInt32 (Console.ReadLine());

for (int i = 1; i <= n; i++)nf *= i;

for (int i = 1; i <= m; i++)mf *= i;

for (int i = 1; i <= n-m; i++)nmf *= i;

Console.WriteLine("c(m,n)="+nf/(mf*nmf));

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int m, n, mf=1, nf=1, nmf=1;

Console.Write (" m=");

m = Convert.ToInt32 (Console.ReadLine());

Page 357: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

327

Console.Write (" n=");

n = Convert.ToInt32 (Console.ReadLine());

for (int i = 1; i <= n; nf *= i, i++)

{

if(i <= m)mf *= i;

if(i <= n-m)nmf *= i;

}

Console.WriteLine("c(m,n)="+nf/(mf*nmf));

Console.ReadKey();

}

Page 358: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

328

6.10 Циклическая структура. Тема № 6. Нестандартные задания

1. Найти наименьшее число, которое больше 2016 и делится на все

числа от 1 до 9. (2520)

Вариант 1.

static void Main(string[] args)

{

int i, j;

for (i = 2017; i < 9999; i++)

{

for (j = 2; j < 10; j++)

if (i % j != 0) goto m1;

Console.WriteLine(i);

break;

m1: ;

}

Console.ReadKey();

}

Вариант 2.

static void Main(string[] args)

{

int i, j;

for (i = 2017; i < 9999; i++)

{

for (j = 2; j < 10; j++)

if (i % j != 0) goto m1;

break;

m1: ;

}

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 2016, j = 2;

while (j < 10)

{

Page 359: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

329

j = 2; i++;

while (i % j == 0) j++;

}

Console.WriteLine(i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 2016, j = 2;

do

{

j = 2; i++;

do j++; while (i % j == 0);

}

while (j < 10);

Console.WriteLine(i);

Console.ReadKey();

}

2. Пересчитать все простые числа от 1 до 100. (26)

static void Main(string[] args)

{

int k=0;

for (int i = 1; i <= 100; i++)

{

for (int j = 2; j < i; j++)

if (i%j == 0) goto m1;

k++;

m1:;

}

Console.WriteLine("количество простых чисел = " + k);

Console.ReadKey();

}

static void Main(string[] args)

{

int k = 0, i = 1, j;

while (i <= 100)

{

j = 2;

Page 360: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

330

while ((j < i) && (i % j != 0)) j++;

if (i <= j) k++;

i++;

}

Console.WriteLine("количество простых чисел = " + k);

Console.ReadKey();

}

3. Найти все натуральные числа, меньшие 100, равные квадрату числа

всех своих делителей. (1 считать делителем, само число - нет) (4, 16)

static void Main(string[] args)

{

int k; // счетчик для подсчета делителей

for (int i = 2; i < 100; i++)

{

k = 1;

for (int j = 2; j < i; j++)

if (i % j == 0) k++;

if (i == k * k) Console.WriteLine(i);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int k, i=2, j; // счетчик для подсчета делителей

while(i < 100)

{

k = 1; j = 2;

while (j < i)

{

if (i % j == 0) k++;

j++;

}

if (i == k * k) Console.WriteLine(i);

i++;

}

Console.ReadKey();

}

Page 361: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

331

4. Вывести на экран все делители натурального числа n, являющиеся

простыми числами. Проверить для числа 113256. (2, 2, 2, 3, 3, 11, 11, 13)

static void Main(string[] args)

{

int n;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 2; i <= n; i++)

{

while (n % i == 0)

{

n = n / i;

Console.WriteLine(i);

}

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 2, n;

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

while (i <= n)

{

while (n % i == 0)

{

n = n / i;

Console.WriteLine(i);

}

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 2, n;

Console.Write(" n = ");

Page 362: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

332

n = Convert.ToInt32(Console.ReadLine());

do

{

while (n % i == 0)

{

n = n / i;

Console.WriteLine(i);

}

i++;

} while (i <= n);

Console.ReadKey();

}

5. Для двух натуральных p и q определить, являются ли они взаимно

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

общих делителей, кроме 1. Проверить для p=28679, q=36873. (не являются,

делитель 17)

static void Main(string[] args)

{

int i, p, q;

Console.Write(" p = ");

p = Convert.ToInt32(Console.ReadLine());

Console.Write(" q = ");

q = Convert.ToInt32(Console.ReadLine());

// в качестве начального значения для i можно взять любое из

чисел p и q

for (i = 2; i <= p; i++)

if ((p % i == 0) && (q % i == 0))

{

Console.WriteLine("не взаимно простые, делитель = " + i);

Console.ReadKey(); return;

}

Console.WriteLine("взаимно простые");

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 2, p, q;

Page 363: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

333

Console.Write(" p = ");

p = Convert.ToInt32(Console.ReadLine());

Console.Write(" q = ");

q = Convert.ToInt32(Console.ReadLine());

while (((i != p) && (i != q)) && ((p % i != 0) || (q % i != 0))) i++;

if ((i == p) || (i == q)) Console.WriteLine("взаимно простые");

else Console.WriteLine("не взаимно простые, делитель = " + i);

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 2, p, q;

Console.Write(" p = ");

p = Convert.ToInt32(Console.ReadLine());

Console.Write(" q = ");

q = Convert.ToInt32(Console.ReadLine());

do

{

if ((p % i == 0) && (q % i == 0))

{

Console.WriteLine("не взаимно простые, делитель = " + i);

Console.ReadKey(); return;

}

i++;

} while (i <= p);

Console.WriteLine("взаимно простые");

Console.ReadKey();

}

6. Дана дробь m/n, где m, n – натуральные числа. Найти p, q – такие,

что p/q – несократимая дробь и p/q=m/n. Проверить для m=57990, n=68010.

(1933, 2267)

static void Main(string[] args)

{

int m, n;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Page 364: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

334

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = n; i >= 2; i--)

if ((m % i == 0) && (n % i == 0))

{

Console.WriteLine("p = " + m / i + " q = " + n / i); break;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int m, n;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = n;

while ((m % i != 0) || (n % i != 0)) i--;

Console.WriteLine("p = " + m / i + " q = " + n / i);

Console.ReadKey();

}

static void Main(string[] args)

{

int m, n;

Console.Write(" m = ");

m = Convert.ToInt32(Console.ReadLine());

Console.Write(" n = ");

n = Convert.ToInt32(Console.ReadLine());

int i = n;

do i--; while ((m % i != 0) || (n % i != 0));

Console.WriteLine("p = " + m / i + " q = " + n / i);

Console.ReadKey();

}

Page 365: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

335

7. Найдите четырехзначное число, являющееся полным квадратом.

Если отбросить первую цифру этого числа, получим полный куб, а если

отбросить следующую цифру, то оставшееся двузначное число будет

четвертой степенью целого числа. (9216)

static void Main(string[] args)

{

for (int a = 1000; a <= 9999; a++)

for (int i = 1; i < 100; i++)

for (int j = 1; j < 10; j++)

for (int k = 1; k < 5; k++)

if ((a == i * i) && (a % 1000 == j * j * j) && (a % 100 == k * k * k

* k))

Console.WriteLine(a);

Console.ReadKey();

}

8. 1729=a3+b3=c3+d3 , abcd. Найти a, b, c, d. (10,9; 12,1)

static void Main(string[] args)

{

for (int a = 1; a <= 20; a++)

for (int b = 1; b <= 20; b++)

for (int c = 1; c <= 20; c++)

for (int d = 1; d <= 20; d++)

if ((a * a * a + b * b * b == 1729) && (c * c * c + d * d * d ==

1729) &&

(a != b) && (a != c) && (a != d) && (b != c) && (b != d) &&

(c != d))

{

Console.WriteLine("a=" + a + " b=" + b + " c=" + c + " d=" +

d);

Console.ReadKey(); return;

}

}

9. Найти наименьшее натуральное число х такое, что х3=a3+b3+c3 , где

a,b,c - натуральные числа, не равные друг другу. (x=6, a=3, b=4, c=5)

static void Main(string[] args)

{

for (int x = 1; x <= 9999999; x++)

Page 366: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

336

for (int a = 1; a < x; a++)

for (int b = 1; b < x; b++)

for (int c = 1; c < x; c++)

if ((x*x*x == a*a*a+b*b*b+c*c*c) && (a != b) && (a!=c) &&

(b!=c))

{

Console.WriteLine("x="+x+" a="+a+" b="+b+" c="+c);

Console.ReadKey(); return;

}

}

10. Найти наименьшее натуральное число, которое можно

представить как сумму квадратов натуральных чисел двумя способами, то

есть m=a2+b2=c2+d2, где a, b, c, d – разные числа. (m=65, a=1, b=8, c=4,

d=7)

static void Main(string[] args)

{

int a, b, c, d;

for (a = 1; a <= 20; a++)

for (b = 1; b <= 20; b++)

for (c = 1; c <= 20; c++)

for (d = 1; d <= 20; d++)

if ((a * a + b * b == c * c + d * d) &&

(a != b) && (a != c) && (a != d) && (b != c) && (b != d) &&

(c != d))

{

Console.WriteLine("m=" + (a*a+b*b) + " a=" + a + " b=" + b + " c="

+ c + " d=" + d);

Console.ReadKey(); return;

}

}

11. Найти число abcd, такое, что (ab)2=acb и (da)2=bca, где a,b,c,d

обозначают какие - либо цифры. (1121)

Вариант № 1

static void Main(string[] args)

{

int a, b, c, d, ab, da, acb, bca;

for (a = 1; a <= 9; a++)

for (b = 1; b <= 9; b++)

Page 367: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

337

for (c = 0; c <= 9; c++)

for (d = 1; d <= 9; d++)

{

ab = 10 * a + b;

da = 10 * d + a;

acb = 100 * a + 10 * c + b;

bca = 100 * a + 10 * c + a;

if ((ab * ab == acb) && (da * da == bca))

Console.WriteLine("abcd = "+(1000 * a + 100 * b + 10

* c + d));

}

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d;

for (a = 1; a <= 9; a++)

for (b = 1; b <= 9; b++)

for (c = 0; c <= 9; c++)

for (d = 1; d <= 9; d++)

if (((10 * a + b) * (10 * a + b) == 100 * a + 10 * c + b)

&&

((10 * d + a) * (10 * d + a) == 100 * a + 10 * c + a))

Console.WriteLine("abcd = " + (1000 * a + 100 * b +

10 * c + d));

Console.ReadKey();

}

12. Найти четырехзначное число, сумма цифр которого делится на 17

и сумма цифр следующего за ним числа тоже делится на 17. (8899)

Вариант № 1

static void Main(string[] args)

{

int a1, b1, c1, d1, f;

for (int a = 1; a <= 9; a++)

for (int b = 0; b <= 9; b++)

for (int c = 0; c <= 9; c++)

for (int d = 0; d <= 9; d++)

{

Page 368: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

338

f = 1000 * a + 100 * b + 10 * c + d + 1;

a1 = f / 1000;

b1 = (f / 100) % 10;

c1 = (f / 10) % 10;

d1 = f % 10;

if (((a + b + c + d) % 17 == 0) && ((a1 + b1 + c1 + d1) %

17 == 0))

{

Console.WriteLine(1000 * a + 100 * b + 10 * c + d);

Console.ReadKey(); return;

}

}

}

Вариант № 2

static void Main(string[] args)

{

int a, b, c, d, a1, b1, c1, d1;

for (int i = 1000; i <= 9999; i++)

{

a = i / 1000;

b = (i / 100) % 10;

c = (i / 10) % 10;

d = i % 10;

a1 = (i + 1) / 1000;

b1 = ((i + 1) / 100) % 10;

c1 = ((i + 1) / 10) % 10;

d1 = (i + 1) % 10;

if (((a + b + c + d) % 17 == 0) && ((a1 + b1 + c1 + d1) % 17 ==

0))

{

Console.WriteLine(1000 * a + 100 * b + 10 * c + d);

Console.ReadKey(); return;

}

}

}

Вариант № 3

static void Main(string[] args)

{

int i, s1, s2;

for (i = 1000; i <= 9999; i++)

Page 369: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

339

{

s1 = 0; for (int j = 0; j < 4; j++) s1 += (i / (int)Math.Pow(10, j))

% 10;

s2 = 0; for (int j = 0; j < 4; j++) s2 += ((i + 1) /

(int)Math.Pow(10, j)) % 10;

if ((s1 % 17 == 0) && (s2 % 17 == 0)) break;

}

Console.WriteLine(i);

Console.ReadKey();

}

Вариант № 4

static void Main(string[] args)

{

for (int a = 1; a <= 9; a++)

for (int b = 0; b <= 9; b++)

for (int c = 0; c <= 9; c++)

for (int d = 0; d <= 9; d++)

for (int a1 = 1; a1 <= 9; a1++)

for (int b1 = 0; b1 <= 9; b1++)

for (int c1 = 0; c1 <= 9; c1++)

for (int d1 = 0; d1 <= 9; d1++)

if (((a + b + c + d) % 17 == 0) && ((a1 + b1 + c1 + d1) % 17 == 0) &&

(1000 * a + 100 * b + 10 * c + d + 1 == 1000 * a1 + 100 * b1 + 10 *

c1 + d1))

{

Console.WriteLine(1000 * a + 100 * b + 10 * c + d);

Console.ReadKey(); return;

}

}

13. Вывести на экран каждую цифру натурального многоразрядного

числа отдельно и общее количество цифр (количество разрядов < 20).

Проверить для 1327007108. (10)

Вариант № 1

static void Main(string[] args)

{

int i, j, k; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

Page 370: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

340

m = n;

for (k = 0; m != 0; k++) m /= 10;

Console.WriteLine("общее количество цифр = " + k);

for (i = 0; i < k; i++)

{

m = 1;

for (j = 1; j < k - i; j++) m *= 10;

Console.WriteLine(n / m % 10);

}

Console.ReadKey();

}

Вариант № 2

static void Main(string[] args)

{

int i, j, k; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

for (k = 0, m = n; m != 0 ; m /= 10, k++);

Console.WriteLine("общее количество цифр = " + k);

for (i = 0; i < k; i++)

{

for (j = 1, m = 1; j < k - i; m *= 10, j++);

Console.WriteLine(n / m % 10);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 0, j, k = 0; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n;

while (m != 0) { m /= 10; k++; }

Console.WriteLine("общее количество цифр = " + k);

while (i < k)

Page 371: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

341

{

m = 1; j = 1;

while (j < k - i) { m *= 10; j++; }

Console.WriteLine(n / m % 10);

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 0, j, k = 0; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n;

do { m /= 10; k++; } while (m != 0);

Console.WriteLine("общее количество цифр = " + k);

do

{

m = 1; j = 1;

while (j < k - i) { m *= 10; j++; }

Console.WriteLine(n / m % 10);

i++;

} while (i < k);

Console.ReadKey();

}

14. Ввести с клавиатуры натуральное многоразрядное число

(количество разрядов <20). Вывести на экран число, состоящее из цифр,

стоящих на нечетных местах введенного многоразрядного числа.

Проверить для 74638295. (7689)

static void Main(string[] args)

{

int i, j, k; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n; // k – количество цифр в числе

for (k = 0; m != 0; k++) m /= 10;

Page 372: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

342

for (i = 0; i < k; i++)

{

m = 1;

for (j = 1; j < k - i; j++) m *= 10;

if (i % 2 == 0) Console.Write(n / m % 10);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 0, j, k = 0; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n; // k – количество цифр в числе

while (m != 0) { m /= 10; k++; }

while (i < k)

{

m = 1; j = 1;

while (j < k - i) { m *= 10; j++; }

if (i % 2 == 0) Console.Write(n / m % 10);

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 0, j, k = 0; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n;

do { m /= 10; k++; } while (m != 0);

do

{

Page 373: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

343

m = 1; j = 1;

while (j < k - i) { m *= 10; j++; }

if (i % 2 == 0) Console.Write(n / m % 10);

i++;

} while (i < k);

Console.ReadKey();

}

15. Ввести с клавиатуры натуральное многоразрядное число. Вывести

на экран число, состоящее из цифр, стоящих на 1, 4, 7, и т.д. местах

введенного многоразрядного числа. Проверить для 24628725. (222)

static void Main(string[] args)

{

int i, j, k; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n; // k – количество цифр в числе

for (k = 0; m != 0; k++) m /= 10;

for (i = 0; i < k; i++)

{

m = 1;

for (j = 1; j < k - i; j++) m *= 10;

if (i % 3 == 0) Console.Write(n / m % 10);

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 0, j, k = 0; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n; // k – количество цифр в числе

while (m != 0) { m /= 10; k++; }

while (i < k)

Page 374: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

344

{

m = 1; j = 1;

while (j < k - i) { m *= 10; j++; }

if (i % 3 == 0) Console.Write(n / m % 10);

i++;

}

Console.ReadKey();

}

static void Main(string[] args)

{

int i = 0, j, k = 0; ulong n, m;

Console.Write(" n = ");

n = Convert.ToUInt64(Console.ReadLine());

m = n;

do { m /= 10; k++; } while (m != 0);

do

{

m = 1; j = 1;

while (j < k - i) { m *= 10; j++; }

if (i % 3 == 0) Console.Write(n / m % 10);

i++;

} while (i < k);

Console.ReadKey();

}

Page 375: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

345

ЛИТЕРАТУРА

1. Мартынов Н.Н. С# для начинающих. – М.: КУДИЦ-ПРЕСС, 2007. – 272

с.

2. Нэш, Трей. С# 2010: ускоренный курс для профессионалов. : Пер. с

англ. – М.: ООО «И.Д. Вильямс», 2010. – 592 с.: ил.

3. Шилдт, Герберт. С# 4.0: полное руководство. : Пер. с англ. – М.: ООО

«И.Д. Вильямс», 2011. – 1056 с.: ил.

4. Троелсен, Эндрю. Язык программирования С# 2010 и платформа .NET

4.0. 5-е изд.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2011. – 1392 с. : ил.

Page 376: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

346

СОДЕРЖАНИЕ

Введение 3

1. Общие сведения о языке программирования С# 4

2. Указания к выполнению лабораторных заданий письменно и

на компьютере

14

3. Алгоритмы и программы линейной структуры 16

3.1. Линейная алгоритмическая конструкция 16

3.2 Линейная структура. Тема № 1. Вывод информации на

экран

17

3.2.1 Подготовительные задания 20

3.2.2 Основные задания 25

3.3 Линейная структура. Тема № 2. Простейшие расчеты 27

3.3.1 Подготовительные задания 30

3.3.2 Основные задания. 33

3.4 Правила расчета арифметического выражения 34

3.4.1 Математические функции С# 34

3.4.2. Правила старшинства 34

3.4.3 Пример расчета арифметического выражения 35

3.5 Линейная структура. Тема № 3. Расчет арифметического

выражения

36

3.5.1 Подготовительные задания 36

3.5.2 Основные задания 40

4. Алгоритмы и программы разветвляющейся структуры 41

4.1 Разветвляющаяся алгоритмическая конструкция 41

4.2 Общие сведения об условном операторе if в языке

программирования С#

43

4.2.1 Условный оператор if 43

4.2.2 Использование кодовых блоков 45

4.2.3 Укороченные логические операторы 45

4.2.4 Операторы инкремента и декремента 46

4.3 Разветвляющаяся структура. Тема № 1. Простые задания 48

4.3.1 Подготовительные задания 48

4.3.2 Основные задания 59

4.4 Разветвляющаяся структура. Тема № 2. Стандартные

задания

60

4.4.1 Постановка задачи 60

4.4.2 Блок-схема стандартного задания разветвляющейся

структуры

62

4.4.3 Пример программы стандартного задания

разветвляющейся структуры

63

4.4.4 Подготовительные задания 64

Page 377: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

347

4.4.5 Основные задания 72

4.5 Разветвляющаяся структура. Тема № 3. Нестандартные

задания

73

4.5.1 Подготовительные задания 73

4.5.2 Основные задания 80

4.6 Разветвляющаяся структура. Тема № 4. Оператор switch 81

5. Алгоритмы и программы циклической структуры 82

5.1 Циклическая алгоритмическая конструкция 82

5.1.1 Цикл с параметром 82

5.1.2 Цикл с предусловием 84

5.1.3 Цикл с постусловием 86

5.2 Оператор цикла for 88

5.3 Циклическая структура. Тема № 1. Простые задания 91

5.3.1 Подготовительные задания 91

5.3.2 Основные задания 117

5.4 Циклическая структура. Тема № 2. Вывод горизонтальных

и вертикальных линий

119

5.4.1 Подготовительные задания 119

5.4.2 Основные задания 153

5.5 Циклическая структура. Тема № 3. Вывод наклонных

линий

157

5.5.1 Подготовительные задания 157

5.5.2 Основные задания 199

5.6 Циклическая структура. Тема № 4. Стандартные задания 205

5.6.1 Пример программы расчета суммы ряда 205

5.6.2 Стандартные задания 206

5.7 Циклическая структура. Тема № 5. Простые нестандартные

задания

208

5.7.1 Подготовительные задания 208

5.7.2 Основные задания 221

5.8 Циклическая структура. Тема № 6. Нестандартные задания 223

5.8.1 Подготовительные задания 223

5.8.2 Основные задания 225

6. Ответы на задания 226

6.1 Линейная структура. Тема № 1. Вывод информации на

экран

226

6.2 Линейная структура. Тема № 2. Простейшие расчеты 230

6.3 Линейная структура. Тема № 3. Расчет арифметического

выражения

236

6.4 Разветвляющаяся структура. Тема № 1. Простые задания 243

6.5 Разветвляющаяся структура. Тема № 3. Нестандартные

задания

249

Page 378: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

348

6.6 Разветвляющаяся структура. Тема № 4. Оператор switch 257

6.7 Циклическая структура. Тема № 1. Простые задания 263

6.8 Циклическая структура. Тема № 4. Стандартные задания 282

6.9 Циклическая структура. Тема № 5. Простые нестандартные

задания

311

6.10 Циклическая структура. Тема № 6. Нестандартные

задания

327

Литература 343

Page 379: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Приложение 2

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное

образовательное учреждение высшего образования

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ

Учебно-методический комплекс. Фонд оценочных средств

для студентов направления

15.03.06 «Мехатроника и робототехника»

прикладной бакалавриат, очной формы обучения

Page 380: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Паспорт фонда оценочных средств

п/п

Модули (темы)

дисциплины в ходе

текущего контроля,

вид промежуточной

аттестации (зачет,

экзамен, с указанием

семестра)

Код контролируемой

компетенции (или ее

части)

Наименование

оценочного

средства (краткое

описание с

указанием

количества

вариантов, заданий

и т.п.)

1. Бинарная арифметика

(экзамен, 1 семестр)

ОК-3 (способностью

использовать основы

экономических знаний

в различных сферах

деятельности)

Тестирование

(Вариант 1, ответ на

вопросы 1-5,

вариант 2, ответ на

вопросы 1-5,

вариант 3, ответ на

вопросы 1-5)

Эссе (ответ на 2, 3

вопросы

экзаменационного

билета № 1-30)

2. ОПК-6 (способностью

решать стандартные

задачи

профессиональной

деятельности на основе

информационной и

библиографической

культуры с

применением

информационно-

коммуникационных

технологий и с учетом

основных требований

информационной

безопасности)

Тестирование

(Вариант 1, ответ на

вопросы 6-10,

вариант 2, ответ на

вопросы 6-10,

вариант 3, ответ на

вопросы 6-10)

Эссе (ответ на 1, 4

вопросы

экзаменационного

билета № 1-30)

3. Реализация

вычислительных

функций (экзамен, 1

семестр)

ОК-3 (способностью

использовать основы

экономических знаний

в различных сферах

деятельности)

Тестирование

(Вариант 1, ответ на

вопросы 1-5,

вариант 2, ответ на

вопросы 1-5,

вариант 3, ответ на

вопросы 1-5)

Page 381: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Эссе (ответ на 2, 3

вопросы

экзаменационного

билета № 1-30)

4. ОПК-6 (способностью

решать стандартные

задачи

профессиональной

деятельности на основе

информационной и

библиографической

культуры с

применением

информационно-

коммуникационных

технологий и с учетом

основных требований

информационной

безопасности)

Тестирование

(Вариант 1, ответ на

вопросы 6-10,

вариант 2, ответ на

вопросы 6-10,

вариант 3, ответ на

вопросы 6-10)

Эссе (ответ на 1, 4

вопросы

экзаменационного

билета № 1-30)

5. Проверка свойств и

значений (экзамен, 1

семестр)

ОК-3 (способностью

использовать основы

экономических знаний

в различных сферах

деятельности)

Тестирование

(Вариант 1, ответ на

вопросы 1-5,

вариант 2, ответ на

вопросы 1-5,

вариант 3, ответ на

вопросы 1-5)

Эссе (ответ на 2, 3

вопросы

экзаменационного

билета № 1-30)

6. ОПК-6 (способностью

решать стандартные

задачи

профессиональной

деятельности на основе

информационной и

библиографической

культуры с

применением

информационно-

коммуникационных

технологий и с учетом

основных требований

информационной

безопасности)

Тестирование

(Вариант 1, ответ на

вопросы 6-10,

вариант 2, ответ на

вопросы 6-10,

вариант 3, ответ на

вопросы 6-10)

Эссе (ответ на 1, 4

вопросы

экзаменационного

билета № 1-30)

Page 382: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

7. Базовые

управляющие

конструкции

(экзамен, 1 семестр)

ОК-3 (способностью

использовать основы

экономических знаний

в различных сферах

деятельности)

Тестирование

(Вариант 1, ответ на

вопросы 1-5,

вариант 2, ответ на

вопросы 1-5,

вариант 3, ответ на

вопросы 1-5)

Эссе (ответ на 2, 3

вопросы

экзаменационного

билета № 1-30)

8. ОПК-6 (способностью

решать стандартные

задачи

профессиональной

деятельности на основе

информационной и

библиографической

культуры с

применением

информационно-

коммуникационных

технологий и с учетом

основных требований

информационной

безопасности)

Тестирование

(Вариант 1, ответ на

вопросы 6-10,

вариант 2, ответ на

вопросы 6-10,

вариант 3, ответ на

вопросы 6-10)

Эссе (ответ на 1, 4

вопросы

экзаменационного

билета № 1-30)

9. Одномерные и

многомерные

массивы (экзамен, 1

семестр)

ОК-3 (способностью

использовать основы

экономических знаний

в различных сферах

деятельности)

Тестирование

(Вариант 1, ответ на

вопросы 1-5,

вариант 2, ответ на

вопросы 1-5,

вариант 3, ответ на

вопросы 1-5)

Эссе (ответ на 2, 3

вопросы

экзаменационного

билета № 1-30)

10. ОПК-6 (способностью

решать стандартные

задачи

профессиональной

деятельности на основе

информационной и

библиографической

культуры с

Тестирование

(Вариант 1, ответ на

вопросы 6-10,

вариант 2, ответ на

вопросы 6-10,

вариант 3, ответ на

вопросы 6-10)

Page 383: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

применением

информационно-

коммуникационных

технологий и с учетом

основных требований

информационной

безопасности)

Эссе (ответ на 1, 4

вопросы

экзаменационного

билета № 1-30)

11. Работа со

строковыми данными

(экзамен, 1 семестр)

ОК-3 (способностью

использовать основы

экономических знаний

в различных сферах

деятельности)

Тестирование

(Вариант 1, ответ на

вопросы 1-5,

вариант 2, ответ на

вопросы 1-5,

вариант 3, ответ на

вопросы 1-5)

Эссе (ответ на 2, 3

вопросы

экзаменационного

билета № 1-30)

12. ОПК-6 (способностью

решать стандартные

задачи

профессиональной

деятельности на основе

информационной и

библиографической

культуры с

применением

информационно-

коммуникационных

технологий и с учетом

основных требований

информационной

безопасности)

Тестирование

(Вариант 1, ответ на

вопросы 6-10,

вариант 2, ответ на

вопросы 6-10,

вариант 3, ответ на

вопросы 6-10)

Эссе (ответ на 1, 4

вопросы

экзаменационного

билета № 1-30)

Page 384: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Фонд оценочных средств

Оценочные средства

Собеседование – проводится в формате защиты результатов выполнения

лабораторных работ;

Контрольная работа – проводится в формате выполнения практического

задания в лаборатории;

Программы компьютерного тестирования – письменное тестирование

по разделам дисциплины;

Экзамен – проводится в формате итогового тестирования или

письменного эссе при ответе на вопрос из экзаменационного билета

Программа проведения процедуры оценки

Собеседование проводится при каждой защите лабораторной работы,

экзамен или тестирование в период экзаменационной сессии.

Требования к квалификации организаторов

Старший преподаватель, доцент или профессор, с образованием,

соответствующем профилю дисциплины. Ассистент, старший преподаватель,

доцент или профессор, при защите лабораторных работ.

Технологии и методы обработки результатов

Применяется компьютерное тестирование закрытого типа с

использованием выбора правильного ответа из множества предлагаемых

вариантов. Результаты итогового тестирования переводятся в баллы. Если в

период проведения текущей аттестации студент набрал 61 балл и более, то он

автоматически получает зачет или экзаменационную оценку в соответствии со

шкалой перевода.

Шкала перевода баллов в оценки:

• от 0 до 60 баллов – «не зачтено»;

• от 61 до 100 баллов – «зачтено»;

• 60 баллов и менее – «неудовлетворительно»;

• от 61 до 75 баллов – «удовлетворительно»;

• от 76 до 90 баллов – «хорошо»;

Page 385: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

• от 91 до 100 баллов – «отлично».

Рекомендации по интерпретации результатов оценивания К

од

ко

мп

етен

ци

и

Критерии в соответствии с уровнем освоения ОП

пороговый (удовл.)

61-75 баллов

базовый (хор.) 76-90 баллов

повышенный (отл.)

91-100 баллов

ОК-3 (способностью

использовать

основы

экономических

знаний в

различных сферах

деятельности)

знает:

некоторые типы

данных, операции и

операторы языков

программирования;

умеет:

записывать

алгоритмы решения

экономических задач

на языках высокого

уровня;

использовать

образовательные

ресурсы по

дисциплине,

представленные в

сети Internet;

владеет:

навыками создания

приложений на языке

программирования

C#.

знает:

базовые типы

данных, операции и

операторы языков

программирования;

умеет:

формализовать

вычислительные и

логические задачи;

записывать

алгоритмы решения

экономических задач

на языках высокого

уровня;

использовать

образовательные

ресурсы по

дисциплине,

представленные в

сети Internet;

владеет:

навыками создания и

отладки приложений

на языке

программирования

C#.

знает:

многие типы данных,

операции и

операторы языков

программирования;

умеет:

формализовать

вычислительные и

логические задачи;

представлять

алгоритмы

вычислительных и

логических задач;

записывать

алгоритмы решения

экономических задач

на языках высокого

уровня;

использовать

образовательные

ресурсы по

дисциплине,

представленные в

сети Internet;

владеет:

навыками создания и

отладки приложений

на языке

программирования

C#.

ОПК-6

(способностью

решать

стандартные задачи

профессиональной

деятельности на

основе

информационной и

библиографической

культуры с

применением

информационно-

коммуникационных

технологий и с

учетом основных

требований

знает:

базовые понятия и

терминологию в

области

вычислительной

техники;

интегрированные

среды (IDE)

разработки

приложений;

умеет:

использовать

стандартные классы

языков ООП;

использовать

современные IDE для

создания

знает:

некоторые понятия и

терминологию в

области

вычислительной

техники;

интегрированные

среды (IDE)

разработки

приложений;

описание классов и

методов приложения;

умеет:

использовать

стандартные классы

языков ООП;

знает:

основные понятия и

терминологию в

области

вычислительной

техники;

основы построения и

архитектуры

компьютера;

способы

представление

информации в

памяти;

интегрированные

среды (IDE)

разработки

приложений;

Page 386: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

информационной

безопасности)

собственных

проектов;

владеет:

навыками создания

приложений на языке

программирования

C#;

навыками

использования

интегрированной

среды разработки

Microsoft Visual

Studio.

проектировать

собственные классы и

методы;

использовать

современные IDE для

создания

собственных

проектов и отладки

соответствующих

приложений;

владеет:

навыками создания и

отладки приложений

на языке

программирования

C#;

навыками

использования

интегрированной

среды разработки

Microsoft Visual

Studio.

описание классов и

методов приложения;

принципы обработки

исключительных

ситуации в языках

ООП;

умеет:

использовать

стандартные классы

языков ООП;

проектировать

собственные классы и

методы;

использовать

современные IDE для

создания

собственных

проектов и отладки

соответствующих

приложений;

владеет:

навыками создания и

отладки приложений

на языке

программирования

C#;

навыками

использования

интегрированной

среды разработки

Microsoft Visual

Studio.

Рекомендации по обновлению фонда оценочных средств

Фонд оценочных средств рекомендуется обновлять ежегодно.

Page 387: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Контрольно-измерительные материалы

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №1

1. Информационные процессы и их модели, кодирование, аналоговая и

цифровая обработка. Информация и ее свойства. Измерение и представление

информации. Классификация и кодирование информации.

2. Вычислите и запишите ответ в десятичной системе счисления:

74 ^ 123 ^ 24

3. Вам дано целое положительное число в переменной N. Напишите код,

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

4. Какие значения будут лежать в массиве A, после выполнения следующего

кода:

int[] A = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i * i;

for (int i = 0; i < 6; i += 2)

A[i] += A[i + 1];

for (int i = 4; i >= 0; i -= 3)

A[i] = 0;

Заведующий кафедрой М.В. Григорьев

Page 388: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №2

1. Средства и алгоритмы представления, хранения и обработки информации.

2. Вычислите и запишите ответ в десятичной системе счисления:

(57 & 43) | 117

3. Вам дано целое положительное число в переменной N - номер месяца (от 1

до 12). Напишите код, используя оператор if, который выводит на экран

время года, соответствующее номеру месяца.

4. Какое значение будут лежать в переменной sum, после выполнения

следующего кода:

int sum = 0;

for (int i = 0; i < 10; ++i)

{

if (i % 2 == 0)

sum += 2 * i;

else

sum -= i - 1;

}

Заведующий кафедрой М.В. Григорьев

Page 389: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №3

1. Архитектура персональных компьютеров. Основные функциональные

части компьютера, их взаимодействие. Принцип запоминаемой программы.

2. Предположим, что числа хранятся в 8 битах. Найдите двоичное

дополнение числа 42 и запишите ответ в двоичной системе счисления.

3. Вам дано целое положительное число в переменной N. Напишите код,

используя цикл for, для вычисление суммы последовательности чисел:

1*2 + 2*3 + 3*4 + … + N*(N+1)

4. Какое значение будет лежать в переменной res, после выполнения

следующего кода:

double res = 0;

double L = 0, R = 10;

while (R - L > 1)

{

double M = (L + R) / 2;

res += M;

R = M;

}

Заведующий кафедрой М.В. Григорьев

Page 390: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №4

1. Двоичная система счисления. Логические операции.

2. Предположим, что числа хранятся в 8 битах. Найдите двоичное

дополнение числа 117 и запишите ответ в двоичной системе счисления.

3. Вам дано четырехзначное целое положительное число в переменной N.

Напишите код, переставляющий цифры этого числа в обратном порядке.

Ответ должен лежать в переменной N.

4. Какое значение будет лежать в переменной res, после выполнения

следующего кода:

int i = 0, j = 9;

int res = 0;

while (true)

{

i++;

j--;

res += i * j;

if (i > j)

break;

}

Заведующий кафедрой М.В. Григорьев

Page 391: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №5

1. Компьютерные сети. Архитектура компьютерных сетей.

2. Сложите двоичные числа 01001101 и 10010101. Запишите ответ в

шестнадцатеричном виде.

3. Вам даны вещественные числа в переменных A, B, C. Напишите код,

который вычисляет следующее выражение и выводит ответ на экран:

√𝐴2 + 𝐵3 ⋅ √𝐶 − 𝐴 − 𝐵 ⋅ 𝑠𝑖𝑛(𝐴𝐵𝐶)

4. Что будет выведено на экран?

for(int i = 1; i <= 6; ++i)

{

for(int j = i; j <= 6; ++j)

Console.Write("{0} ", i * j);

Console.WriteLine();

}

Заведующий кафедрой М.В. Григорьев

Page 392: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №6

1. Классификация программного обеспечения. Системное программное

обеспечение. Операционные системы.

2. Перемножьте двоичные числа 10011 и 10101. Запишите ответ в десятичной

системе счисления.

3. Вам дан номер года в переменной N. Напишите код, который присваивает

в булеву переменную значение true, если год високосный. Год високосный -

если номер года делится на 4, а также если он делится на 100, то должен

делиться на 400. (1333 и 1900 - не високосные, 1204 и 2000 - високосные).

4. Что будет выведено на экран?

int[] A = new int[6];

int[] B = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i + 1;

for(int i = 0; i < 6; i += 2)

{

B[i] = A[i + 1];

B[i + 1] = A[i];

}

int res = 0;

for (int i = 0; i < 6; ++i)

res += A[i] - B[i];

Console.WriteLine(res);

Page 393: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Заведующий кафедрой М.В. Григорьев

Page 394: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №7

1. Алгоритмы. Виды алгоритмов. Язык программирования C#. Пространство

имен.

2. Предположим, что числа хранятся в 8 битах. Вычислите и запишите ответ

в десятичной системе счисления:

(41 >> 2) ^ (13 << 3)

3. Напишите код, который выводит таблицу умножения чисел от 1 до 9 на

экран.

4. Что будет выведено на экран?

int x = 12345;

int y = x / 100 % 10;

int z = x / 1000 % 10;

int w = x / 10 % 10;

x -= w * 10;

x -= y * 100;

x -= z * 1000;

x += w * 100;

x += y * 1000;

x += z * 10;

Console.WriteLine(x);

Заведующий кафедрой М.В. Григорьев

Page 395: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №8

1. Основные конструкции языка C#. Алфавит языка. Синтаксис.

Идентификаторы. Служебные слова. Литералы.

2. Вычислите и запишите ответ в десятичной системе счисления:

1^2^3^4^5^6^7^8

3. Вам дано вещественное число в переменной A. Напишите код, который

вычисляет 𝐴13 , используя только 5 операций умножения, и выводит

результат на экран. Math.Pow запрещено использовать.

4. Что будет выведено на экран?

int x = 42;

int y = 1;

for (int i = 1; i <= 7; ++i)

y *= 2;

for(int i = 7; i >= 0; --i)

{

if (x >= y)

{

x -= y;

Console.Write(1);

}

else

Console.Write(0);

y /= 2;

}

Page 396: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Заведующий кафедрой М.В. Григорьев

Page 397: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №9

1. Типы данных. Встроенные типы данных. Преобразования типов.

2. Вычислите и запишите ответ в шестнадцатеричной системе счисления:

(76 | 29) &111

3. Вам дан массив вещественных чисел A. Напишите код, который

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

выводит эти два числа на экран.

4. Что будет выведено на экран?

double x = 8;

double s = 0;

for(int i = 0; i < 13; i += 3)

{

if (i % 2 == 0)

{

s += x;

x /= 2;

}

}

Console.WriteLine(s);

Заведующий кафедрой М.В. Григорьев

Page 398: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №10

1. Константы и переменные. Перечисления.

2. Вычислите и запишите ответ в десятичной системе счисления:

25 | (73^48)

3. Вам дан массив вещественных чисел A. Напишите код, который вычисляет

и выводит на экран среднее квадратическое чисел (среднее арифметическое

среди квадратов всех чисел).

4. Что будет выведено на экран?

double res = 0;

int i = 0;

while (i < 8)

{

res += Math.Pow(2, i);

i += 2;

}

Console.WriteLine(res);

Заведующий кафедрой М.В. Григорьев

Page 399: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №11

1. Операции в языке C#. Приоритет. Выражения.

2. Вычислите и запишите ответ в десятичной системе счисления:

1^2^3^4^5^6^7^8

3. Вам дан массив вещественных чисел A. Напишите код, который

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

выводит эти два числа на экран.

4. Что будет выведено на экран?

double res = 0;

int i = 0;

while (i < 8)

{

res += Math.Pow(2, i);

i += 2;

}

Console.WriteLine(res);

Заведующий кафедрой М.В. Григорьев

Page 400: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №12

1. Операторы. Операторы следования, ветвления, цикла. Операторы

перехода.

2. Предположим, что числа хранятся в 8 битах. Вычислите и запишите ответ

в десятичной системе счисления:

(41 >> 2) ^ (13 << 3)

3. Вам дано вещественное число в переменной A. Напишите код, который

вычисляет 𝐴13 , используя только 5 операций умножения, и выводит

результат на экран. Math.Pow запрещено использовать.

4. Что будет выведено на экран?

double x = 8;

double s = 0;

for(int i = 0; i < 13; i += 3)

{

if (i % 2 == 0)

{

s += x;

x /= 2;

}

}

Console.WriteLine(s);

Заведующий кафедрой М.В. Григорьев

Page 401: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №13

1. Консоль: организация ввода-вывода.

2. Перемножьте двоичные числа 10011 и 10101. Запишите ответ в десятичной

системе счисления.

3. Напишите код, который выводит таблицу умножения чисел от 1 до 9 на

экран.

4. Что будет выведено на экран?

int x = 42;

int y = 1;

for (int i = 1; i <= 7; ++i)

y *= 2;

for(int i = 7; i >= 0; --i)

{

if (x >= y)

{

x -= y;

Console.Write(1);

}

else

Console.Write(0);

y /= 2;

}

Заведующий кафедрой М.В. Григорьев

Page 402: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №14

1. Рекурсивные методы.

2. Сложите двоичные числа 01001101 и 10010101. Запишите ответ в

шестнадцатеричном виде.

3. Вам дан номер года в переменной N. Напишите код, который присваивает

в булеву переменную значение true, если год високосный. Год високосный -

если номер года делится на 4, а также если он делится на 100, то должен

делиться на 400. (1333 и 1900 - не високосные, 1204 и 2000 - високосные).

4. Что будет выведено на экран?

int x = 12345;

int y = x / 100 % 10;

int z = x / 1000 % 10;

int w = x / 10 % 10;

x -= w * 10;

x -= y * 100;

x -= z * 1000;

x += w * 100;

x += y * 1000;

x += z * 10;

Console.WriteLine(x);

Заведующий кафедрой М.В. Григорьев

Page 403: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №15

1. Работа с массивами.

2. Предположим, что числа хранятся в 8 битах. Найдите двоичное

дополнение числа 117 и запишите ответ в двоичной системе счисления.

3. Вам даны вещественные числа в переменных A, B, C. Напишите код,

который вычисляет следующее выражение и выводит ответ на экран:

√𝐴2 + 𝐵3 ⋅ √𝐶 − 𝐴 − 𝐵 ⋅ 𝑠𝑖𝑛(𝐴𝐵𝐶)

4. Что будет выведено на экран?

int[] A = new int[6];

int[] B = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i + 1;

for(int i = 0; i < 6; i += 2)

{

B[i] = A[i + 1];

B[i + 1] = A[i];

}

int res = 0;

for (int i = 0; i < 6; ++i)

res += A[i] - B[i];

Console.WriteLine(res);

Заведующий кафедрой М.В. Григорьев

Page 404: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №16

1. Информационные процессы и их модели, кодирование, аналоговая и

цифровая обработка. Информация и ее свойства. Измерение и представление

информации. Классификация и кодирование информации.

2. Предположим, что числа хранятся в 8 битах. Найдите двоичное

дополнение числа 42 и запишите ответ в двоичной системе счисления.

3. Вам дано четырехзначное целое положительное число в переменной N.

Напишите код, переставляющий цифры этого числа в обратном порядке.

Ответ должен лежать в переменной N.

4. Что будет выведено на экран?

for(int i = 1; i <= 6; ++i)

{

for(int j = i; j <= 6; ++j)

Console.Write("{0} ", i * j);

Console.WriteLine();

}

Заведующий кафедрой М.В. Григорьев

Page 405: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №17

1. Средства и алгоритмы представления, хранения и обработки информации.

2. Вычислите и запишите ответ в десятичной системе счисления:

(57 & 43) | 117

3. Вам дано целое положительное число в переменной N. Напишите код,

используя цикл for, для вычисление суммы последовательности чисел:

1*2 + 2*3 + 3*4 + … + N*(N+1)

4. Какое значение будет лежать в переменной res, после выполнения

следующего кода:

int i = 0, j = 9;

int res = 0;

while (true)

{

i++;

j--;

res += i * j;

if (i > j)

break;

}

Заведующий кафедрой М.В. Григорьев

Page 406: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №18

1. Архитектура персональных компьютеров. Основные функциональные

части компьютера, их взаимодействие. Принцип запоминаемой программы.

2. Вычислите и запишите ответ в десятичной системе счисления:

74 ^ 123 ^ 24

3. Вам дано целое положительное число в переменной N - номер месяца (от 1

до 12). Напишите код, используя оператор if, который выводит на экран

время года, соответствующее номеру месяца.

4. Какое значение будет лежать в переменной res, после выполнения

следующего кода:

double res = 0;

double L = 0, R = 10;

while (R - L > 1)

{

double M = (L + R) / 2;

res += M;

R = M;

}

Заведующий кафедрой М.В. Григорьев

Page 407: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №19

1. Двоичная система счисления. Логические операции.

2. Вычислите и запишите ответ в десятичной системе счисления:

25 | (73^48)

3. Вам дано целое положительное число в переменной N. Напишите код,

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

4. Какое значение будут лежать в переменной sum, после выполнения

следующего кода:

int sum = 0;

for (int i = 0; i < 10; ++i)

{

if (i % 2 == 0)

sum += 2 * i;

else

sum -= i - 1;

}

Заведующий кафедрой М.В. Григорьев

Page 408: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №20

1. Компьютерные сети. Архитектура компьютерных сетей.

2. Вычислите и запишите ответ в десятичной системе счисления:

25 | (73^48)

3. Вам дан массив вещественных чисел A. Напишите код, который вычисляет

и выводит на экран среднее квадратическое чисел (среднее арифметическое

среди квадратов всех чисел).

4. Какие значения будут лежать в массиве A, после выполнения следующего

кода:

int[] A = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i * i;

for (int i = 0; i < 6; i += 2)

A[i] += A[i + 1];

for (int i = 4; i >= 0; i -= 3)

A[i] = 0;

Заведующий кафедрой М.В. Григорьев

Page 409: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №21

1. Классификация программного обеспечения. Системное программное

обеспечение. Операционные системы.

2. Предположим, что числа хранятся в 8 битах. Найдите двоичное

дополнение числа 117 и запишите ответ в двоичной системе счисления.

3. Вам дан массив вещественных чисел A. Напишите код, который вычисляет

и выводит на экран среднее квадратическое чисел (среднее арифметическое

среди квадратов всех чисел).

4. Какие значения будут лежать в массиве A, после выполнения следующего

кода:

int[] A = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i * i;

for (int i = 0; i < 6; i += 2)

A[i] += A[i + 1];

for (int i = 4; i >= 0; i -= 3)

A[i] = 0;

Заведующий кафедрой М.В. Григорьев

Page 410: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №22

1. Алгоритмы. Виды алгоритмов. Язык программирования C#. Пространство

имен.

2. Вычислите и запишите ответ в десятичной системе счисления:

1^2^3^4^5^6^7^8

3. Вам дан массив вещественных чисел A. Напишите код, который

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

выводит эти два числа на экран.

4. Какое значение будут лежать в переменной sum, после выполнения

следующего кода:

int sum = 0;

for (int i = 0; i < 10; ++i)

{

if (i % 2 == 0)

sum += 2 * i;

else

sum -= i - 1;

}

Заведующий кафедрой М.В. Григорьев

Page 411: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №23

1. Основные конструкции языка C#. Алфавит языка. Синтаксис.

Идентификаторы. Служебные слова. Литералы.

2. Вычислите и запишите ответ в десятичной системе счисления:

74 ^ 123 ^ 24

3. Вам дано вещественное число в переменной A. Напишите код, который

вычисляет 𝐴13 , используя только 5 операций умножения, и выводит

результат на экран. Math.Pow запрещено использовать.

4. Какое значение будет лежать в переменной res, после выполнения

следующего кода:

double res = 0;

double L = 0, R = 10;

while (R - L > 1)

{

double M = (L + R) / 2;

res += M;

R = M;

}

Заведующий кафедрой М.В. Григорьев

Page 412: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №24

1. Типы данных. Встроенные типы данных. Преобразования типов.

2. Сложите двоичные числа 01001101 и 10010101. Запишите ответ в

шестнадцатеричном виде.

3. Напишите код, который выводит таблицу умножения чисел от 1 до 9 на

экран.

4. Какое значение будет лежать в переменной res, после выполнения

следующего кода:

int i = 0, j = 9;

int res = 0;

while (true)

{

i++;

j--;

res += i * j;

if (i > j)

break;

}

Заведующий кафедрой М.В. Григорьев

Page 413: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №25

1. Константы и переменные. Перечисления.

2. Вычислите и запишите ответ в шестнадцатеричной системе счисления:

(76 | 29) &111

3. Вам дан номер года в переменной N. Напишите код, который присваивает

в булеву переменную значение true, если год високосный. Год високосный -

если номер года делится на 4, а также если он делится на 100, то должен

делиться на 400. (1333 и 1900 - не високосные, 1204 и 2000 - високосные).

4. Что будет выведено на экран?

for(int i = 1; i <= 6; ++i)

{

for(int j = i; j <= 6; ++j)

Console.Write("{0} ", i * j);

Console.WriteLine();

}

Заведующий кафедрой М.В. Григорьев

Page 414: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №26

1. Операции в языке C#. Приоритет. Выражения.

2. Вычислите и запишите ответ в десятичной системе счисления:

(57 & 43) | 117

3. Вам даны вещественные числа в переменных A, B, C. Напишите код,

который вычисляет следующее выражение и выводит ответ на экран:

√𝐴2 + 𝐵3 ⋅ √𝐶 − 𝐴 − 𝐵 ⋅ 𝑠𝑖𝑛(𝐴𝐵𝐶)

4. Что будет выведено на экран?

int[] A = new int[6];

int[] B = new int[6];

for (int i = 0; i < 6; ++i)

A[i] = i + 1;

for(int i = 0; i < 6; i += 2)

{

B[i] = A[i + 1];

B[i + 1] = A[i];

}

int res = 0;

for (int i = 0; i < 6; ++i)

res += A[i] - B[i];

Console.WriteLine(res);

Заведующий кафедрой М.В. Григорьев

Page 415: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №27

1. Операторы. Операторы следования, ветвления, цикла. Операторы

перехода.

2. Перемножьте двоичные числа 10011 и 10101. Запишите ответ в десятичной

системе счисления.

3. Вам дано четырехзначное целое положительное число в переменной N.

Напишите код, переставляющий цифры этого числа в обратном порядке.

Ответ должен лежать в переменной N.

4. Что будет выведено на экран?

int x = 12345;

int y = x / 100 % 10;

int z = x / 1000 % 10;

int w = x / 10 % 10;

x -= w * 10;

x -= y * 100;

x -= z * 1000;

x += w * 100;

x += y * 1000;

x += z * 10;

Console.WriteLine(x);

Заведующий кафедрой М.В. Григорьев

Page 416: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №28

1. Консоль: организация ввода-вывода.

2. Вычислите и запишите ответ в десятичной системе счисления:

25 | (73^48)

3. Вам дано целое положительное число в переменной N. Напишите код,

используя цикл for, для вычисление суммы последовательности чисел:

1*2 + 2*3 + 3*4 + … + N*(N+1)

4. Что будет выведено на экран?

int x = 42;

int y = 1;

for (int i = 1; i <= 7; ++i)

y *= 2;

for(int i = 7; i >= 0; --i)

{

if (x >= y)

{

x -= y;

Console.Write(1);

}

else

Console.Write(0);

y /= 2;

}

Page 417: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Заведующий кафедрой М.В. Григорьев

Page 418: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №29

1. Рекурсивные методы.

2. Предположим, что числа хранятся в 8 битах. Найдите двоичное

дополнение числа 42 и запишите ответ в двоичной системе счисления.

3. Вам дано целое положительное число в переменной N - номер месяца (от 1

до 12). Напишите код, используя оператор if, который выводит на экран

время года, соответствующее номеру месяца.

4. Что будет выведено на экран?

double x = 8;

double s = 0;

for(int i = 0; i < 13; i += 3)

{

if (i % 2 == 0)

{

s += x;

x /= 2;

}

}

Console.WriteLine(s);

Заведующий кафедрой М.В. Григорьев

Page 419: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

ФГАОУ ВО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Институт математики и компьютерных наук

Кафедра: Математики и информатики

Дисциплина: Информатика и программирование

Направление: 15.03.06 Мехатроника и робототехника

Семестр: I

Экзаменационный билет №30

1. Работа с массивами.

2. Предположим, что числа хранятся в 8 битах. Вычислите и запишите ответ

в десятичной системе счисления:

(41 >> 2) ^ (13 << 3)

3. Вам дано целое положительное число в переменной N. Напишите код,

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

4. Что будет выведено на экран?

double res = 0;

int i = 0;

while (i < 8)

{

res += Math.Pow(2, i);

i += 2;

}

Console.WriteLine(res);

Заведующий кафедрой М.В. Григорьев

Page 420: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

Варианты тестовых заданий для промежуточного контроля и итоговой

аттестации уровня освоения компетенций:

способностью использовать основы экономических знаний в

различных сферах деятельности (ОК-3)

Вариант 1

За количество отработанных дней в году (t), сотрудник предприятия должен

произвести нормированное количество деталей (s). Сколько деталей должен

сделать работник за 327 дней:

int t = 327;

int s = 0;

s = t % 10 + (t / 10) % 10 + (t / 100) % 10;

Console.WriteLine(s);

1. 35

2. 7

3. 362

4. 12

Скорость работы вычислительного устройства задается …

1. Тактовым генератором

2. Метрономом

3. Частотой процессора

4. Заводом-производителем

В экономическом контексте внутренний архитектурный уровень определяет

1. Физическое устройство решения

2. Понятийное устройство решения

3. Видение решения, воспринимаемое пользователей

4. Техническое устройство решения

Архитектура в системе экономических знаний – это …

1. Набор ключевых решений

2. Внешний вид решения

Page 421: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

3. Способ организации системы

4. Устройство компьютера

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

рассчитываются по следующей программе. Чему будут равны

амортизационные издержки при t=781:

int t = 781;

int s = ((t / 10) % 10) * 10;

s = s + t % 10;

s = s + (t / 100) * 100;

Console.WriteLine(s);

1. 871

2. 781

3. 178

4. 4563

Вариант 2

В течении года станок работает x недель. При этом он должен находиться на

обслуживании y недель. Сколько недель нужно обслуживать станок при

отработанных 41 неделе:

int x = 41;

int y = x / 2;

x = y / 8;

Console.WriteLine(x);

1. 0

2. 2

3. 2,5625

4. 21

Данные в вычислительной системе передаются по …

1. Шине

2. Магистрали

3. Проводам

Page 422: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

4. Любой среде

В экономическом контексте концептуальный архитектурный уровень

определяет …

1. Физическое устройство решения

2. Понятийное устройство решения

3. Видение решения, воспринимаемое пользователей

4. Техническое устройство решения

Информация в информационно-экономической системе – это …

1. Программный код

2. 0, 1

3. Сведения, не зависимые от формы представления

4. Знания о мире

Техническое обслуживание станка производится через каждые 15 дней.

Известно, что после последнего технического обслуживания прошло x дней.

Какое выражение позволяет узнать, нужно ли производить техническое

обслуживание:

1. x % 3 == 0 || x % 5 == 0

2. x / 3 == 0 || x / 5 == 0

3. x % 3 == 0 && x % 5 == 0

4. x / 3 == 0 && x / 5 == 0

Вариант 3

Производство детали x требует определенное количество деталей y, которое

рассчитывается по приведенной программе. Сколько нужно деталей y для

производства 3 деталей x:

int x = 3;

int y = 1 * 2 * x;

x = x * 4;

y = x * 5;

Console.WriteLine(y);

Page 423: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

1. 24

2. 60

3. 120

4. 6

Базовые инструкции вычислительной системы:

1. 0, 1

2. Сложение, вычитание, умножение

3. Последовательность, переход

4. Последовательность, выбор, повторение

В экономическом контексте внешний архитектурный уровень определяет …

1. Физическое устройство решения

2. Понятийное устройство решения

3. Видение решения, воспринимаемое пользователей

4. Техническое устройство решения

Данные в информационно-экономической системе – это …

1. Программный код

2. 0, 1

3. Способ представления информации

4. Содержимое файлов

Работник цеха производит детали, обозначенные номерами 1, 2, 3, 6, 7, 8.

Выражение "деталь x произведена этим работником" можно записать:

1. x == 1, 2, 3, 6, 7, 8

2. x >= 1 && x <= 3 || x >= 6 && x <= 8

3. x >= 1 || x <= 3 || x >= 6 || x <= 8

4. x >= 1 || x <= 3 && x >= 6 || x <= 8

Page 424: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

способностью решать стандартные задачи профессиональной

деятельности на основе информационной и библиографической

культуры с применением информационно-коммуникационных

технологий и с учетом основных требований информационной

безопасности (ОПК-6)

Вариант 1

Какой из перечисленных типов данных вещественный?

1. int

2. double

3. bool

4. string

Каков будет результат работы программы:

double[] a = new double[8];

for(int i = 0; i < 8; i++)

a[i] = i / 1.0;

double s = 0;

for(int i = 1; i < 7; i++)

s += a[i] / 2;

Console.WriteLine(s);

1. 9,0

2. 28

3. 10,5

4. 14,0

Второе название булевого типа данных:

1. Символьный

2. Вещественный

3. Целочисленный

4. Логический

Каков будет результат работы программы:

int x = 0;

int i = 0;

Page 425: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

while (i <= 6);

{

x += i;

i++;

}

Console.WriteLine(x);

1. 21

2. 28

3. 15

4. Программа "повиснет"

43 & 91 = ? (& - И)

1. 3913

2. 123

3. 25

4. 11

Вариант 2

Какой из перечисленных типов данных целочисленный?

1. int

2. double

3. bool

4. string

Каков будет результат работы программы:

int[] a = new int[8];

for(int i = 0; i < 8; i++)

a[i] = i * i;

int s = 0;

for(int i = 0; i < 7; i++)

s += a[i + 1] - a[i];

Console.WriteLine(s);

1. 36

Page 426: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

2. 49

3. Ошибка

4. 7

Как называется операция увеличения переменной на единицу?

1. Итерация

2. Инкремент

3. Декремент

4. Условие

Каков будет результат работы программы:

int x = 0;

int i = 3;

while (i < 7)

{

x += i;

i++;

}

Console.WriteLine(x);

1. 18

2. Программа "повиснет"

3. 25

4. 12

17 ^ 23 = ? (^ - искл. ИЛИ)

1. 17

2. 6

3. 40

4. 391

Вариант 3

Какую арифметическую операцию выполняет процессор?

1. +

Page 427: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

2. –

3. *

4. /

Каков будет результат работы программы:

int s = 0;

for(int i = 0; i < 10; i += 2)

{

s += i / 3;

}

Console.WriteLine(s);

1. Программа "повиснет"

2. 5

3. 12

4. 20

Как называется однократное выполнение кода в циклическом операторе?

1. Итерация

2. Декремент

3. Инициализация

4. Тело

Каков будет результат работы программы:

int s = 0;

for(int i = 0; i < 7; i++)

{

if (i % 2 == 0)

{

s += 3;

}

else

{

Page 428: op.utmn.ru › ... › Annot_mr_IProg_26_12_2016.pdf · =ригорьев .., Bнформатика и программирование. Mчебно-методический комплекс

s += 2;

}

}

Console.WriteLine(s);

1. Программа "повиснет"

2. 20

3. 17

4. 18

42 | 33 = ? (| - ИЛИ)

1. 9

2. 43

3. 11

4. 45