|
Лабораторные работы №3-7. Лабораторная работа программирование алгоритмов линейной структуры на языке c#
ЛАБОРАТОРНАЯ РАБОТА № 5. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ НА ЯЗЫКЕ C#
Цель работы: овладение практическими навыками разработки и программирования алгоритмов циклической структуры; приобретение дальнейших навыков по отладке и тестированию программ. Теоретическая часть Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).
Для организации цикла необходимо выполнить следующие действия:
перед началом цикла задать начальное значение параметра;
внутри цикла изменять параметр цикла с помощью оператора присваивания;
проверять условие повторения или окончания цикла;
управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из цикла в противном случае.
Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием).
В цикле с известным числом повторений параметр изменяется в заданном диапазоне.
Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.
К операторам цикла относятся: цикл с предусловием while, цикл с постусловием do while, цикл с параметром for и цикл перебора foreach.
Цикл с предусловием while Оператор цикла while организует выполнение одного оператора (простого или составного) неизвестное заранее число раз. Формат цикла while:
while ( выражение B) оператор S
где B - выражение, истинность которого проверяется (условие завершения цикла); S - тело цикла - оператор (простой или составной).
Выражение B определяет условие повторения тела цикла: перед каждым выполнением тела цикла анализируется значение выражения В: если оно истинно, то выполняется тело цикла, и управление передается на повторную проверку условия В; если значение В ложно - цикл завершается и управление передается на оператор, следующий за оператором S.
Если результат выражения B окажется ложным при первой проверке, то тело цикла не выполнится ни разу. Отметим, что если условие B во время работы цикла не будет изменяться, то возможна ситуация зацикливания, то есть невозможность выхода из цикла. Поэтому внутри тела должны находиться операторы, приводящие к изменению значения выражения B так, чтобы цикл мог корректно завершиться.
Пример: Вывести на экран целые числа из интервала от 1 до n.
static void Main()
{
Console.Write("N= ");
int n=int.Parse(Console.ReadLine());
int i = 1;
while (i <= n) //пока i меньше или равно n
Console.Write(" "+ i++ ); //выводим i на экран, затем увеличиваем его на 1
} Результаты работы программы:
n ответ
10 1 2 3 4 5 6 7 8 9 10
Цикл с постусловием do while Оператор цикла dowhile также организует выполнение одного оператора (простого или составного) неизвестное заранее число раз. Однако в отличие от цикла while условие завершения цикла проверяется после выполнения тела цикла. Формат цикла do while:
do оператор S while выражение B;
где В - выражение, истинность которого проверяется (условие завершения цикла); оператор S - тело цикла - оператор (простой или блок).
Сначала выполняется оператор S, а затем анализируется значение выражения В: если оно истинно, то управление передается оператору S, если ложно - цикл завершается, и управление передается на оператор, следующий за условием B. Так как условие В проверяется после выполнения тела цикла, то в любом случае тело цикла выполнится хотя бы один раз.
В операторе do while, так же как и в операторе while, возможна ситуация зацикливания в случае, если условие В всегда будет оставаться истинным.
Пример: Вывести на экран целые числа из интервала от 1 до n.
static void Main()
{
Console.Write("N= ");
int n=int.Parse(Console.ReadLine());
int i = 1;
do
Console.Write(" " + i++);
//выводим i на экран, затем увеличиваем его на 1
while (i <= n); //пока i меньше или равно n
}
Цикл с параметром for Цикл с параметром имеет следующую структуру:
for (<инициализация>; <выражение>; <модификация>) <оператор>;
Инициализация используется для объявления и/или присвоения начальных значений величинам, используемым в цикле в качестве параметров (счетчиков). В этой части можно записать несколько операторов, разделенных запятой. Областью действия переменных, объявленных в части инициализации цикла, является цикл и вложенные блоки. Инициализация выполняется один раз в начале исполнения цикла.
Выражение определяет условие выполнения цикла: если его результат истинен, цикл выполняется. Истинность выражения проверяется перед каждым выполнением тела цикла, таким образом, цикл с параметром реализован как цикл с предусловием. В блоке выражение через запятую можно записать несколько логических выражений, тогда запятая равносильна операции логическое И (&&).
Модификация выполняется после каждой итерации цикла и служит обычно для изменения параметров цикла. В части модификация можно записать несколько операторов через запятую.
Оператор (простой или составной) представляет собой тело цикла.
Любая из частей оператора for (инициализация, выражение, модификация, оператор) может отсутствовать, но точку с запятой, определяющую позицию пропускаемой части, надо оставить.
static void Main()
{
Console.Write("N= ");
int n=int.Parse(Console.ReadLine());
for (int i=1; i<=n;) //блок модификации пустой
Console.Write(" " + i++);
}
Оператор do while обычно используют, когда цикл требуется выполнить хотя бы один раз. Оператором while удобнее пользоваться в случаях, когда число итераций заранее не известно. Оператор for предпочтительнее в большинстве остальных случаев.
Цикл перебора foreach
Оператор foreach применяется для перебора элементов в специальным образом организованной группе данных, например в массиве. Удобство этого вида цикла заключается в том, что нам не требуется определять количество элементов в группе и выполнять перебор по индексу - мы просто указываем на необходимость перебрать все элементы группы.
Синтаксис оператора:
foreach (<тип> <имя> in <группа>) <тело цикла>
где имя определяет локальную по отношению к циклу переменную, которая будет по очереди принимать все значения из указанной группы, а тип соответствует базовому типу элементов группы.
Ограничением оператора foreach является то, что с его помощью можно только просматривать значения элементов в группе данных, но нельзя их изменять.
Пример использования оператора foreach для работы с одномерными массивами:
static void PrintArray(string a, int [] mas)
{
Console.WriteLine(a);
foreach (int x in mas)Console.Write("{0} ", x);
Console.WriteLine();
} Вложенные циклы
Циклы могут быть простые или вложенные (кратные, циклы в цикле). Вложенными могут быть циклы любых типов: while, do while, for. Каждый внутренний цикл должен быть полностью вложен во все внешние циклы. "Пересечения" циклов не допускаются. Пример: Вывести на экран числа следующим образом:
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
static void Main()
{
for (int i = 1; i <= 4; ++i, Console.WriteLine()) //1
for (int j=1; j<=5; ++j)
Console.Write(" " + 2);
}
Замечание. В строке 1 в блоке модификации содержится два оператора ++i и Console.WriteLine(). В данном случае после каждого увеличения параметра i на 1 курсор будет переводиться на новую строку.
Оператор перехода к следующей итерации цикла continue Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации (повторение тела цикла).
Пример:
static void Main()
{
Console.WriteLine("n=");
int n = int.Parse(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
if (i % 2 == 0) continue;
Console.Write(" " + i);
}
}
Вопросы для самоконтроля
Из каких элементов состоят циклические операторы?
Что необходимо для выполнения в цикле более одного оператора?
В чем основное отличие операторов цикла с предусловием и постусловием?
Для чего используется оператор continue?
Для чего используется оператор break? goto?
Когда целесообразно использовать оператор цикла for?
Как привести цикл while к циклу for и наоборот?
Какие операторы цикла существуют в языке С#?
Что представляет собой «тело цикла»?
Что такое «итерация»?
Что такое «счетчик цикла»?
Верно ли, что истинность выражения в цикле с предусловием является условием продолжения цикла?
Сколько раз выполнится оператор в теле цикла while, если с самого начала значение выражения равно false?
Практическая часть Задание №1. Вывести на экран (задачу решите тремя способами - используя операторы цикла while, do while и for):
целые числа 1, 3, 5, …, 101 в строчку через пробел;
целые числа 10, 12, 14, …, 80 в обратном порядке в столбик;
таблицу соответствия между весом в фунтах и весом в килограммах для значений 1, 2, 3, …, 100 фунтов (1 фунтов = 453г);
таблицу перевода 5, 10, 15, …, 500 долларов США в рубли по текущему курсу (значение курса вводится с клавиатуры);
таблицу стоимости для 10, 20, 30,…, 200 штук товара, при условии, что одна штука товара стоит х руб (значение х водится с клавиатуры);
таблицу перевода расстояний в дюймах в сантиметры для значений 2, 4, 6, …, 24 дюймов (1 дюйм = 25.4 мм);
кубы всех целых чисел из диапазона от А до В () в обратном порядке;
все целые числа из диапазона от А до В (), оканчивающиеся на цифру Х;
все целые числа из диапазона от А до В (), оканчивающиеся на цифру Х или У;
все целые числа из диапазона от А до В (), оканчивающиеся на любую четную цифру;
только положительные целые числа из диапазона от А до В ();
все целые четные числа из диапазона от А до В (), оканчивающиеся на цифру Х или У в обратном порядке;
все целые числа из диапазона от А до В, кратные трем ();
все трехзначные числа, в записи которых две цифры одинаковые;
все четные числа из диапазона от А до В, кратные пяти ();
только отрицательные четные числа из диапазона от А до В () в обратном порядке;
все двухзначные числа, в записи которых все цифры разные;
все двухзначные числа, в которых старшая цифра отличается от младшей не больше чем на 1;
все трехзначные числа, которые начинаются и заканчиваются на одну и ту же цифру;
все трехзначные числа, в которых хотя бы две цифры повторяются;
числа следующим образом:
10 10.4
11 11.4
…
25 25.4
числа следующим образом:
25 25.5 24.8
26 26.5 25.8
…
35 35.5 34.8
квадраты всех целых нечетных чисел из диапазона от А до В () в прямом и обратном порядке;
все целые отрицательные числа из диапазона от А до В, кратные семи ();
все трехзначные числа, в которых старшая цифра отличается от младшей не больше чем на 3.
Задание №2. Вывести на экран числа следующим образом:
1)
| 2)
| 3)
| 4)
| 5)
| 6)
| 7)
| 8)
| 9)
| 10)
| 11)
| 12)
| 13)
| 14)
| 15)
| 16)
|
17)
|
18)
|
19)
|
20)
| 21)
| 22)
| 23)
| 24)
| 25)
|
|
|
|
Задание №3. Решите задачу:
Найти среднее арифметическое всех целых чисел от 1 до 1000.
Найти среднее арифметическое всех целых чисел от 100 до b (значение b вводится с клавиатуры; );
Найти среднее арифметическое всех целых чисел от а до 200 (значение а вводится с клавиатуры; );
Найти среднее арифметическое всех целых чисел от а до b (значения а и b вводятся с клавиатуры; );
Найти сумму квадратов всех целых чисел от а до 50 (значение а вводится с клавиатуры; );
Найти сумму квадратов всех целых чисел от 1 до n (значение n вводится с клавиатуры; );
Найти сумму квадратов всех целых чисел от а до b (значения а и b вводятся с клавиатуры; );
Дано натуральное число n. Напечатать разложение этого числа на простые множители. Реализовать вариант каждый простой множитель должен быть напечатан один раз;
Дано натуральное число n. Напечатать разложение этого числа на простые множители. Реализовать вариант каждый простой множитель должен быть напечатан столько раз сколько раз он входит в разложение.
Дано натуральное число n. Получить все простые делители этого числа.
Дано натуральное число n. Получить все натуральные числа, меньшие n и взаимно простые с ним (два натуральных числа называются взаимно простыми, если их наибольший общий делитель равен 1).
Даны целые числа n и m. Получить все натуральные числа, меньшие n и взаимно простые с р.
Даны целые числа n и m. Получить все делители числа m, взаимно простые с р.
Составить программу для графического отображения делимости чисел от 1 до n (значение n вводится с клавиатуры). В каждой строке надо напечатать очередное число и столько символов «+», сколько делителей у этого числа. Например, если п=4, то на экране должно быть напечатано:
1+
2++
3++
4+++
Найти все целые числа из промежутка от a до b, у которых количество делителей равно k.
Найти натуральное число m интервала от a до b, у которого количество делителей максимально. Если таких чисел несколько, то должно быть найдено максимальное из них;
Найти натуральное число m интервала от a до b, у которого количество делителей максимально. Если таких чисел несколько, то должно быть найдено минимальное из них
Найти все трехзначные простые числа (простым называется натуральное число, большее 1, не имеющее других делителей, кроме единицы и самого себя).
Найти все целые числя из промежутка от 300 до 600, у которых сумма делителей кратна 10.
Натуральное число называется совершенным, если оно равно сумме своих делителей, включай 1 и, естественно, исключая это самое число. Например, совершенным является число 6 (6=1+2+3). Найти все совершенные числа, меньшие 100 000.
Найти натуральное число из интервала от a до b с максимальной суммой делителей.
Найти все целые числа из промежутка от 100 до 300, у который сумма делителей равна 50.
Дано натуральное число п (). Найти все трехзначные числа, сумма цифр которых равна п. Операции деления, целочисленного деления и определения остатка не использовать.
Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр. Операции деления, целочисленного деления и определения остатка не использовать.
Даны натуральные числа m и n. Получить все натуральные числа, меньшие n, квадрат суммы цифр которых равен m.
Задание №4. Дано натуральное число. Определить:
количество цифр в нем;
среднее арифметическое его цифр;
сколько раз в нем встречается последняя цифра;
количество четных цифр в нем. Составное условие и более одного неполного условного оператора не использовать;
сумму его цифр, больших пяти;
произведение его цифр, больших семи;
сколько раз в нем встречаются цифры 0 и 5 (всего);
сколько раз в нем встречается цифра а;
количество его цифр кратных z (значение z вводится с клавиатуры; z = 2, 3, 4);
сумму его цифр, больших а (значение а вводится с клавиатуры; );
сколько раз в нем встречаются цифры х и у;
его минимальную цифру;
его максимальную цифру;
на сколько его максимальная цифра превышает минимальную;
сумму его максимальной и минимальной цифр;
порядковый номер его максимальной цифры, считая номера от конца числа;
порядковый номер его минимальной цифры, считая номера от начала числа;
порядковые номера его максимальной и минимальной цифр, считая номера от конца числа;
порядковые номера его максимальной и минимальной цифр, считая номера от начала числа;
две его максимальные цифры;
три его минимальные цифры;
номер цифры S в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой левой из них;
сколько раз в нем встречается максимальная цифра (например, для числа 132 233 ответ равен 3, для числа 46 336 — 2, для числа 12 345 — 1);
сколько раз в нем встречается минимальная цифра (например, для числа 102 200 ответ равен 3, для числа 40 330 — 2, для числа 10345 — 1);
сколько раз в нем встречается первая цифра.
Задание №5. Решите задачу:
Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить за какой месяц величина ежемесячного увеличения вклада превысит 30 руб.;
Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить, через сколько месяцев размер вклада повысит 1200 руб.;
Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробeг на 10% от пробега предыдущего дня. Определить на какой день он пробежит больше 20 км;
Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробeг на 10% от пробега предыдущего дня. Определить в какой день суммарный пробег за все дни превысит 100 км.
В некотором году (назовем его условно первым) на участке в 100 гектар средняя урожайность ячменя состарила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить в каком году урожайность превысит 22 центнера с гектара;
В некотором году (назовем его условно первым) на участке в 100 гектар средняя урожайность ячменя состарила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить в каком году площадь участка стянет больше 120 гектар;
В некотором году (назовем его условно первым) на участке в 100 гектар средняя урожайность ячменя состарила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить в каком году общий урожай, собранный за вес время, начиная с первого года, превысит 800 центнеров.
В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано натуральное число n.Как наименьшим количеством таких денежных купюр можно выплатить сумму n (указать количество каждой из используемых для выплат купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.
Известны данные о стоимости каждого товара из группы. Найти общую стоимость тех товаров, которые стоят дороже 1000 рублей (количество таких товаров неизвестно).
Известны данные о количестве страниц в каждой из нескольких газет и в каждом из нескольких журналов. Число страниц в газете не более 16. Найти общее число страниц во всех журналах (количество журналов неизвестно, но известно, что объем любого журнала превышает объем любой газеты).
Известны данные о количестве осадков, выпавших за каждый день месяца. Определить общее количество осадков, выпавших второго, четвертого и т.д. числа этого месяца. Оператор цикла с шагом, отличным от 1 и -1, не использовать.
Написать программу, ведущую учет очков, набранных каждой командой при игре в баскетбол. Количество очков, полученных командами в ходе игры, может быть равно 1, 2 или 3. После окончания игры выдать итоговое сообщение и указать номер команды-победительницы. Окончание игры условно моделировать вводом количества очков, равного нулю.
Известен год рождения n человек из группы. Определить число людей, родившихся до 1985 года, и число людей родившихся после 1990 года.
Для каждой команды-участницы чемпионата по футболу известно ее количество выигрышей и количество проигрышей. Определить, сколько команд имеют больше выигрышей, чем проигрышей?
Известны максимальные скорости каждой из 20 марок легковых автомобилей. Определить, какую скорость имеет самый быстрый автомобиль.
В некоторых видах спортивных состязаний (например, в фигурном катании) выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляется наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставили несколько судей, то из совокупности оценок удаляется только одна такая оценка, аналогично поступают и с наиболее низкими оценками. Составить программу для расчета оценки, которая пойдет в зачет этому спортсмену.
Известно число учеников в каждом из 20 классов школы. На сколько численность самого большого (по числу учеников) класса превышает численность самого маленького класса?
В ходе хоккейного матча игроки обеих команд удалялись в обшей сложности 24 раза. По каждому удалению известен номер команды удаленного игрока и продолжительность удаления (2, 5 или 10 мин.) Для каждой команды определить общее число удалений и общее время всех удалении.
Известны данные о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количество первых дней месяца непрерывно, начиная с первого мая, осадков не было. Условный оператор не использовать. Рассмотреть случай когда допускается, что осадков могло не быть ни в какой день мая.
Известна масса каждого человека, из некоторой группы людей. Людей, имеющие массу более 100 кг. будем условно называть полными (известно, что в группе есть, по меньшей мере, один такой человек). Определить количество полных людей и среднюю массу всех людей.
Известны данные о массе (в кг) и объеме (в см3) 30 тел, изготовленных из различных материалов. Определить максимальную плотность материала.
Известны данные о численности населения (в миллионах жителей) и площади (в тысячах квадратных километров) 28 государств. Определить максимальную плотность населения в отдельном государстве.
Известны длины участков пути (в км), которые проехали 25 автомобилей, и время, затраченное каждым из них (в часах). Определить порядковый номер автомобиля, имевшего максимальную из средних скоростей движения на участках.
В результате измерений получены напряжения (в вольтах) на зажимах каждого из 20 различных электрических сопротивлений, не соединенных друг с другом. Характеристика (в омах) каждого сопротивления известна. Определить порядковый номер сопротивления, по которому проходит минимальный ток.
Известны результаты (время в минутах), показанные автогонщиком – участником соревнований «Формула-1» – на каждом этапе. Известно также, что на одном этапе он занял первое место и на одном – последнее. Верно ли, что этап, который он выиграл, был раньше этапа, на котором он занял последнее место?
Задание №6. Решите задачу:
Торговая фирма в первый день работы реализовала товаров на P тыс. руб., а затем ежедневно увеличивала выручку на 3%. Какой будет выручка фирмы в тот день, когда она впервые превысит заданное значение Q? Сколько дней придется торговать фирме для достижения этого результата?
Известны данные о росте 15 юношей группы, упорядоченные по убыванию. Нет ни одной пары учащихся, имеющих одинаковый рост. В начале учебного года в группу поступил новый учащийся. Какое место в перечне ростов займет рост этого учащегося? Известно, что его рост не совпадает с ростом ни одного из учащихся группы, превышает рост самого низкого юноши и меньше роста самого высокого.
Известно количество очков, набранных каждой из 20 команд-участниц первенства по футболу. Перечень очков дан в порядке убывания (ни одна пара команда не набрала одинаковое количество очков). Определить, какое место заняла команда, набравшая N очков (значение N имеется в перечне).
Известны данные о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количество первых дней месяца непрерывно, начиная с первого мая, осадков не было. Условный оператор не использовать. Рассмотреть случай когда известно, что в какие-то мая осадки выпадали.
Известно число студентов, учащихся на всех первых курсах, на всех вторых, ... и во всех пятых курсах. Определить общее число студентов, учащихся в первых, третьих, пятых курсах университета. Оператор цикла с шагом, отличным от 1 и -1, не использовать.
Известны оценки по информатике каждого студента университета. Определить количество пятярок.
Известны данные о температуре воздуха в течение месяца. Определить, сколько раз температура опускалась ниже 00С.
Известен год рождения каждого учащегося группы. Определить число учащихся, родившихся до 1990 года и число учащихся, родившихся после 2000 года.
Для каждой команды-участницы чемпионата по футболу известно ее количество выигрышей и количество проигрышей. Определить, сколько команд имеют больше выигрышей, чем проигрышей.
В ходе хоккейного матча игроки обеих команд удалялись в общей сложности 24 раза. По каждому удалению известен номер команды удаленного игрока и продолжительность удаления (2, 5 или 10 мин.). Для каждой команды определить общее число удалений и общее время всех удалений.
Известны оценки каждого из студентов университета по физике. Посчитать количество пятерок, количество четверок, количество троек и количество двоек.
В чемпионате по футболу команде за выигрыш дается 3 очка, за проигрыш – 0, за ничью – 1. Известно число очков, полученных командой на каждую из проведенных игр. Определить количество выигрышей, количество проигрышей и количество ничьих.
Известна масса каждого человека из некоторой группы людей. Людей, имеющим массу более 100 кг. будем условно называть полными (известно, что в группе есть, по меньшей мере, один такой человек). Определить среднюю массу полных людей и среднюю массу остальных людей.
Известен рост каждого студента университета. Рост мальчиков условно задан отрицательными числами. Определить, средний рост мальчиков и средний рост девочек.
В компьютер по очереди поступают результаты спортсменов-участников соревнований по лыжным гонкам, уже пришедших к финишу (время, затраченное на прохождение дистанции гонки). Выводить на экран лучший результат после ввода результата очередного спортсмена.
Известны расстояния от Москвы до нескольких городов. Найти расстояние от Москвы до самого удаленного города из представленных в списке городов.
Известны максимальные скорости каждой из 20 марок легковых автомобилей. Определить какую максимальную скорость имеет самый быстрый автомобиль.
Известны данные о количестве людей, живущие в квартире №1, в квартире №2 и т.д. В какой квартире больше всего жильцов? Если таких квартир несколько, то должна быть найдена квартира с максимальным номером.
Известны результаты каждого из участников соревнований по лыжным гонкам (время, затраченное на прохождение дистанции гонки). Спортсмены стартовали по одному. Результаты даны в том порядке, в каком спортсмены стартовали. Определить, каким по порядку стартовал лыжник, показавший лучший результат? Если таких спортсменов несколько, то должен быть найден первый из них.
Известно количество очков, набранных футбольными командами в чемпионате. Какая команда (определить ее номер) набрала наименьшее количество очков? Если таких команд несколько, то должна быть найдена первая из них.
Известны данные о количестве осадков, выпавших за каждый день месяца. Какого числа выпало самое большое количество осадков? Если таких дней несколько, то должна быть найдена дата последнего из них.
В некоторых видах спортивных состязании (например, в фигурном катании) выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставили несколько судей, то из совокупности оценок удаляется только одна такая оценка; аналогично поступают и с наиболее низкими оценками. Составить программу для расчета оценки, которая пойдет в зачет этому спортсмену.
Известен рост каждого человека из группы. На сколько рост самого высокого из них превышает рост самого низкого?
Известно число учеников в каждом из 20 классов школы. На сколько численность самого большого (по числу учеников) класса превышает численность самого маленького класса?
Известны оценки каждого студента из группы по двум предметам. Определить количество студентов группы получивших на экзамене двойку.
Задание №7. Табулирование функций Постановка задачи: Составить программу вычисления значений функции F(x) на отрезке [A, B] в точках , где H=(B-A)/M, M – заданное целое число.
Пример: Получить 20 значений функции при изменении аргумента x в диапазоне [0,1; 2,1] с шагом 0,1. Блок-схема алгоритма:
Варианты задания №7
Номер варианта
| Функция
| Параметры
| M
| A
| B
| 1
| x-sin x
| 0
| /2
| 10
| 2
| 2-sin x
| /4
| /2
| 15
| 3
| Cos x
| /3
| 2/3
| 20
| 4
| Tg x
| 0
| /4
| 10
| 5
| Ctg x
| /4
| /2
| 15
| 6
| Arctg x
| 0
| 1
| 20
| 7
| Arccos x
| 0,5
| 1
| 10
| 8
| Arctg x
| 2
| 7
| 15
| 9
| Sin x – cos x
| 0
| /2
| 20
| 10
| Xsin x
| 0
| 3
| 10
| 11
| sin(1/ x)
| /8
| 2/
| 15
| 12
| cos(1/ x)
| /4
| 4/
| 20
| 13
| sin(x 2)
| /6
| 2/3
| 10
| 14
| Cos(x2)
| /3
| 3/2
| 15
| 15
| Sin x - tg x
| 0
| /4
| 20
| 16
| Cos x +ctg x
| /4
| /2
| 10
| 17
| Tg(x/2)
| 0
| 2/3
| 15
| 18
| Tg(x/2)+cos x
| /2
|
| 20
| 19
| ctg(x/3)+sin x
| /4
| /2
| 10
| 20
| sin(x /4)/2
| /2
|
| 15
| 21
| ex-e-x-2
| 0
| 2
| 20
| 22
| x -2-sin(1/ x)
| 1,2
| 2
| 8
| 23
| Ln x - x +1,8
| 2
| 3
| 10
| 24
| x2+10 x -10
| 0
| 1
| 10
| 25
| 0,4+arctg x – x
| 1
| 2
| 10
|
Задание №8. Программирование алгоритмов итерационной циклической структуры Пример: Вычислить значение суммы членов бесконечного ряда с точностью до члена ряда, меньшего =10-4 для x=0,1. Блок-схема алгоритма:
Варианты задания №8
Контрольные вопросы
Когда целесообразно использовать оператор цикла for (while, do while)?
Как организовать принудительный выход из цикла?
Что является областью действия переменных, объявленных в части инициализации цикла?
Верно ли, что в теле цикла с предусловием должен находиться один оператор?
Что нужно сделать, чтобы циклически выполнялись несколько операторов?
Когда проверяется истинность выражения в операторе цикла repeat?
Верно ли, что истинность выражения в цикле repeat является условием окончания цикла?
Верно ли, что цикл с параметром применяется в тех случаях, когда заранее известно число повторений?
Могут ли внутренний и внешний циклы быть циклами разных видов?
Когда проверяется истинность выражения в цикле while?
Что такое модификация в цикле for?
Какая из частей оператора for может отсутствовать?
Какие действия необходимо выполнить, чтобы организовать цикл?
Что из себя представляет цикл перебора foreach?
Какому условию должны удовлетворять вложенные циклы?
|
|
|