Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания.pdf
Скачиваний:
81
Добавлен:
13.02.2015
Размер:
1.2 Mб
Скачать

writeln(‘кроликов=’,k,’гусей=’,(64-k*4) div 2)

//C#

int count = 0;

for (int krol = 64/4; krol >= 0; krol--)

{

Console.WriteLine("{0}.\t кроликов = {1}\tгусей = {2}", ++count,krol,(64-krol*4)/2);

}

Пояснения к задачам 18, 23, 24, 25:

Пример 6.6 Заменить буквы цифрами так, чтобы соотношение оказалось верным (одинаковым буквам соответствуют одинаковые цифры, разным — разные): ХРУСТ*ГРОХОТ = РРРРРРРРРРР.

Систему тестов здесь составить опять таки проблематично, но после решения и проверки корректности полученного результата мы можем привести решение: 21649 * 513239 = 11111111111

Перед написанием программы следует отметить, что во время решения данной задачи может возникнуть переполнение, поэтому каждую букву заменяем переменной целого типа и определяем для нее ограничения, так h, g, r могут принимать значения из диапазона 1 .. 9, т.к. с них начинаются числа, а остальные переменные o, t, s, u находятся в диапазоне 0 .. 9.

Слова сопоставляем с переменными a, b, c, которым присваиваем тип comp, который позволяет хранить целые 11-тиразрядные числа.

Листинг 4.4

// Turbo Pascal 7.0

{$N+} //Включение математического сопроцессора var

h,r,u,s,t,g,o:integer;

a,b,c:comp; begin

for r:=1 to 9 do begin

c:=r*exp(10*ln(10))+r*1000000000+r*100000000+r*10000000+

r*1000000+r*100000+r*10000+r*1000+r*100+r*10+r; for h:=1 to 9 do

for u:=0 to 9 do for s:=0 to 9 do

for t:=1 to 9 do for g:=1 to 9 do

for o:=0 to 9 do begin

a:=h*10000+r*1000+u*100+s*10+t;

b:=g*100000+r*10000+o*1000+h*100+o*10+t;

61

if c=a*b then begin

writeln(h,r,u,s,t,'*',g,r,o,h,o,t,

'=',r,r,r,r,r,r,r,r,r,r,r);

readln;

halt;

end;

end;

end;

end.

//С#

int h, r, u, s, t, g, o; double a, b, c;

long i=0;

for (r = 1; r <= 9; r++)

{

c = r*Math.Pow(10, 10) + r*Math.Pow(10, 9) + r*Math.Pow(10, 8) + r*Math.Pow(10, 7) + r*Math.Pow(10, 6) + r*Math.Pow(10, 5)

+ r*Math.Pow(10, 4) +

r*Math.Pow(10, 3) + r*Math.Pow(10, 2)

+ r*10+r;

 

for(h=1;h<=9;h++)

 

for(u=0;u<=9;u++)

 

for(s=0;s<=9;s++)

 

for(t=1;t<=9;t++)

for(g=1;g<=9;g++)

for (o = 0;

o <= 9; o++)

{

i++;

a = h * 10000 + r * 1000 + u * 100 + s * 10 + t; b = g * 100000 + r * 10000 + o * 1000 + h * 100

+ o * 10 + t;

if (c == a * b)

{

Console.Write("Ответ: "); Console.Write(a); Console.Write("*"); Console.Write(b); Console.Write("="); Console.WriteLine(c); Console.WriteLine(i); Console.ReadLine(); return;

}

}

}

62

13.3Задания к лабораторной работе №4

1.Имеется серия измерений элементов треугольника. Группы элементов пронумерованы. В серии в произвольном порядке могут встречаться такие группы элементов треугольника:

1)основание и высота;

2)две стороны и угол между ними (угол задан в радианах);

3)три стороны.

Разработать программу, которая запрашивает номер группы элементов, вводит соответствующие элементы и вычисляет площадь треугольника. Вычисления прекратить, если в качестве номера группы введен 0.

2.Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

3.Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ..., 24 часа.

4.Около стены наклонно стоит палка длиной х м. Один ее конец находится на расстоянии у м от стены. Определить значение угла а между палкой

иполом для значений х = k м и у, изменяющегося от 2 до 3 м с шагом h м.

5.На мебельной фабрике выпускают табуреты с тремя и четырьмя ногами (заготовки одинаковые). В наличии имеется 101 заготовка. Выбрать наилучшие сочетания (все варианты) изготовления табуретов, т.е. количество оставшихся ног должно стремиться к минимуму.

6.Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 руб., за корову — 5 руб., а за теленка — 0,5 руб., если на 100 руб. надо купить 100 голов скота?

7.Доказать (путем перебора возможных значений), что для любых величин А, В, С типа Boolean следующие пары логических выражений имеют одинаковые значения (эквивалентны):

А) A OR В И В OR А; Б) A AND В И В AND A;

В) (A OR В) OR С И A OR С;

Г) (A AND В) AND С И A AND (В AND С) ;

8.Составить программу для проверки утверждения: «Результатами вычислений по формуле х2 +х+ 17 при 0≤х≤ 15 являются простые числа». Все результаты вывести на экран.

9.Составить программу для проверки утверждения: «Результатами вычислений по формуле x2+x+41 при 0≤х≤40 являются простые числа». Все результаты вывести на экран.

63

10.Составить программу-генератор простых чисел, в основу положить формулу 2х2 + 29 при 0 ≤ х ≤ 28.

11.Составить программу-генератор простых чисел, в основу

положить формулу 22x+1 +1 при 1≤ x ≤ 36 3

12.Составить программу-генератор чисел Пифагора а, b, с (с2 = а2 + b2).

Воснову положить формулы: a= m2—n2, b=2mn, с = m2 + n2 (m, n — натуральные, 1 < m < k, 1 < n < k, k — данное число). Результат вывести на экран в виде таблицы из пяти столбцов: m, n, а, b, с.

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

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

15.Найти сумму всех n-значных чисел (1 ≤n ≤ 4).

16.Найти сумму всех n-значных чисел, кратных k (1 ≤ n ≤ 4).

17.Показать, что для всех n = 1, 2, 3, N

(15 + 25 + ... + n5) + (17 + 27 + ... + n7) = 2(1 + 2 + ... + n)4.

18.Составить алгоритм решения ребуса КТО + КОТ = ТОК (различные буквы обозначают различные цифры, старшая — не 0).

19.Составить программу, которая находит наибольшее значение отношения трехзначного числа к сумме его цифр.

20.Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу Esc.

21.Вычислить количество точек с целочисленными координатами, находящихся в круге радиуса R (R>0).

22.Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр (операции деления и нахождения остатка от деления не использовать).

23.Составить алгоритм решения ребуса РАДАР = (Р + А + Д)4 (различные буквы обозначают различные цифры, старшая — не 0).

24.Составить алгоритм решения ребуса МУХА + МУХА + + МУХА = СЛОН (различные буквы обозначают различные цифры, старшая - не 0).

25.Составить алгоритм решения ребуса ДРУГ — ГУРД = 2727 (различные буквы обозначают различные цифры, старшая — не 0).

26.Покупатель должен заплатить в кассу S руб. У него имеются купюры по 1, 5, 10, 50, 100, 500, 1000 и 10000 руб. Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных купюр?

27.Ежемесячная стипендия студента составляет N руб., а расходы на проживание превышают стипендию и составляют В руб. в месяц. Рост цен

64

ежемесячно увеличивает расходы на 3%. Составьте программу расчета суммы денег, которую необходимо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.

28.Составить программу, которая запрашивает пароль (например, четырехзначное число) до тех пор, пока он не будет правильно введен.

29.Найдите любое трёхзначные число, кратное заданному Р и не рав-

ное ему.

30.Известен начальный вклад клиента в банк и процент годового дохода. Определите, через сколько лет вклад превысит заданный размер и каков при этом будет размер вклада.

65