Смекни!
smekni.com

Методические рекомендации по выполнению расчетного задания по курсу «Информатика» для студентов специальностей 200106 «Информационно-измерительная техника и технологии» (стр. 5 из 11)

41. Даны три числа x, y, z. Найти: а) max(x+y+z, xyz)+3;
б) min (x2+y2, y2+z2)-4.

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

43. Выведите на экран номер четверти, которой принадлежит точка с координатами (х, у), при условии, что х и у отличны от 0.

44. Напишите программу, которая анализирует человека по возрасту и относит к одной из пяти групп: дошкольник, ученик, студент, работник, пенсионер. Возраст вводится с клавиатуры.

45. Составьте программу, которая по введенному вами k – числу грибов, печатает фразу «Мы нашли в лесу k грибов», причем согласовывает окончание слова «гриб» с числом k.

46. Составьте программу, которая для целого числа k (от 1 до 99), введенного вами, напечатает фразу «Мне k лет», при этом в нужных случаях слово «лет» заменяя на слово «год» или «года».

47. Составьте программу, определяющую, входит ли введенная вами цифра в десятичную запись введенного вами трехзначного числа.

48. Даны действительные числа x, y. Определить, принадлежит ли точка с координатами (x, y) заштрихованной части плоскости.

49. Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале координат. Определить, сколько точек пересечения находится во II координатной четверти.

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

51. Выяснить, принадлежит ли точка с координатами (x, y): кругу единичного радиуса с центром в начале координат; кольцу с центром в начале координат с внешним радиусом 3 и с внутренним радиусом 2,5.

52. Дан номер года. Найти число дней в этом году. Указание.
В современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех, которые делятся на 100 и не делится на 400. Например, 1900 год – не високосный, 2000 год – високосный.

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

54. Даны действительные числа x, y . Определить, принадлежит ли точка с координатами (x, y) заштрихованной части плоскости.

3 ЦИКЛИЧЕСКИЕ СТРУКТУРЫ

Цикл – команда исполнителю повторить многократно указанную последовательность команд алгоритмического языка или, другими словами, многократно повторяющаяся часть программы. Существует три разновидности оператора цикла.

3.1 Оператор цикла с параметром

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

Структура оператора:

а) for <счетчик> := <начальное значение> to <конечное значение> do <оператор>;

Пример: for i:=1 to 10 do k:=k+1;

б) for <счетчик> := <начальное значение> downto <конечное значение> do <оператор>;

Пример: for i:=10 downto 1 do k:=k*i;

В этих операторах счетчик цикла i имеет целый тип, и если не задан шаг, то увеличивается на 1 автоматически (случай а) или уменьшается (случай б). В случае, когда значение счетчика цикла достигает конечного значения, выполнение тела цикла прекращается. Если начальное значение изначально больше конечного, цикл не выполнится ни разу.

После оператора do выполняется только 1 оператор. Если необ-ходимо выполнить 2 и более, используют операторные скобки
begin … end.

3.2 Цикл с предусловием

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

Структура оператора:

while <условие> do <оператор>;

Например, while x<0 do х:=х+2;

Здесь <условие> - выражение логического типа, <оператор> - выполняемый оператор. Цикл работает следующим образом: сначала вычисляется логическое выражение <условие>; если оно имеет значение true, то выполняется соответствующий оператор, если - false, то происходит выход из цикла. Если <условие> с самого начала имеет значение false, то тело цикла не выполнится ни разу. В теле цикла отсутствует счетчик, следовательно, должен стоять оператор, производящий изменение данного условия.

После оператора do выполняется только 1 оператор. Если необ-ходимо выполнить 2 и более, используют операторные скобки
begin … end.

3.3 Цикл с постусловием

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

Структура оператора:

repeat <условие> until <условие>;

Например, repeat x:=x+2 until x>=0;

Здесь <тело цикла> - набор произвольных операторов, <условие> - выражение логического типа.

Цикл работает так: сначала выполняются операторы в теле цикла, затем проверяется <условие>. Если <условие> имеет значение false, то цикл повторяется, в противном случае цикл завершается. Таким образом, тело цикла выполняется хотя бы один раз.

Если операторов в теле цикла несколько, то прибегать к использованию составного оператора нет необходимости, поскольку они и так ограничены служебными словами repeat … until.

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

3.4 Примеры решения задач

Пример 1. Проверить, является ли целое число простым.

Решение:

uses crt;

var n,i:integer;

begin

readln(n);

for i:=2 to n-1 do

if n mod i = 0 then begin

writeln(n,'не простое'); readkey; halt; end;

writeln (n,'простое');

readkey;

end.

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

Пример 2. Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода – 0.

Решение:

uses crt;

var a,max:integer;

begin

max:=0;

repeat

writeln('введите число');

readln(a);

if a>max then max:=a

until a=0;

writeln('max=',max);

readkey;

end.

Пример 3. Написать программу, которая позволяет найти наименьшее общее кратное двух целых чисел.

Решение:

var nok,n1,n2:byte; i:word;

begin

writeln('введите два числа');

readln(n1,n2);

nok:=1;

for i:=n1*n2 downto 2 do

if (n1 mod i=0) and (n2 mod i=0) then nok:=i;

write('NOK -', nok);

readkey;

end.

Пример 4. Дано натуральное число n. Подсчитайте количество цифр данного числа.

Решение:

Подсчет количества цифр начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий, пока число не станет равным нулю.

uses crt;

var m,n:longint; k:integer;

begin

writeln('Введите целое число');

readln(n);

while n<>0 do

begin

inc(k);

n:=n div 10;

end;

writeln('B числе',n, '-',k,'цифр!');

readkey;

end.

Пример 5. Дано число n. Создать его «перевертыш» и определить, равно ли число перевертыш исходному числу (число 1234 есть перевертыш числа 4321).

Решение:

uses crt;

var n,m,a,i:integer;

begin

writeln('введите целое число, не большее 9999');

readln(n);

m:=n;a:=0;

{создание перевертыша}

for i:=l to 4 do {так как число четырехзначное}

begin

a:=a*10+m mod 10; m:=m div 10;

end;

if a=n then writeln('ДА!') else writeln('НЕТ!');

readkey;

end.

Пример 6. Дано х, принадлежащее интервалу от -1 до 1. Составьте программу вычисления суммы ряда

с заданной точностью e. Нужная точность считается полученной, если очередное слагаемое оказалось по модулю меньше, чем данное малое положительное число e (это и все последующие слагаемые учитывать не надо).

Решение:

uses crt;

var x,st,sl,у,е:real; n,z:integer;

begin

write('Введите х, принадлежащее (-1,1)');

readln(x);

write('Введите погрешность вычисления');

readln(e);

y:=0; n:=l; z:=l; st:=x; sl:=x;

repeat

inc(y,z*sl);

inc (n);

z:=-z;

st:=st*x;

sl:=st/n;

until sl<e;

writeln(y);

readkey;

end.

3.5 Задачи для самостоятельного решения

1. Составьте программу, выводящую на экран квадраты чисел от 10 до 20. Составьте программу, которая вычисляет сумму чисел от 1 до 100.

2. Даны натуральные числа n и m. Получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m.

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

4. В сберкассу на трехпроцентный вклад положили S рублей. Какой станет сумма вклада через N лет?

5. Посчитать сумму ряда для заданного значения x с заданной пользователем точностью. Определить количество слагаемых.

6. Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.

7. Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5.

8. Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7.

9. Посчитать сумму ряда для заданного значения x с заданной пользователем точностью. Определить количество слагаемых.

10. Ввести с клавиатуры 10 чисел – положительных и отрицательных. Заменить все отрицательные числа их модулями и напечатать все полученные 10 чисел.

11. Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.

12. Найти произведение двузначных нечетных чисел, кратных 13.