Напечатать минимальное число большее 200 которое нацело делится на 17
Перейти к содержимому

Напечатать минимальное число большее 200 которое нацело делится на 17

  • автор:

Циклы в языке Паскаль

Цикл — это замечательное изобретение, которое, в сущности, и делает компьютеры такими ценными. Он позволяет многократно повторить любую часть программы. Цикл не может выполняться вечно, он заканчивается по какому-либо условию. Проверка этого условия может производиться в начале каждого повторяющегося шага, в этом случае цикл называется ПОКА. При проверке условия в конце каждого шага цикл называется ДО. Разновидностью цикла ДО является цикл ПЕРЕСЧЕТ.

10.1.Оператор цикла WHILE (цикл ПОКА).

Формат оператора:
WHILE логическое выражение DO;

Оператор будет повторятся пока истинно логическое выражение. Перед каждым повторением оператора значение логического выражения вычисляется заново. Если необходимо повторить несколько операторов, их следует объединить в составной оператор, т.е. заключить в операторные скобки begin . end. Этот цикл может не выполниться ни разу, если условие при входе в него оказалось ложным. Таким образом, цикл ПОКА содержит условие повторения цикла.

Пример 1. Программа подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+. 1/N.

Program Summa;
Var S:real;
N:integer;
Begin
S:=0;N:=0;
While n Begin
N:=n+1;
S:=s+1/n
End;
Writeln(s);
Readln
End.

Пример 2 . Вычислить наибольший общий делитель двух натуральных чисел А и В.

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

Program NOD;
Var a,b:integer;
Begin
Write (‘ введите два натуральных числа ‘)
Readln(a,b)
While a<>b do If a>b then a:=a-b else b:=b-a;
Writeln(‘ НОД =’,a);
Readln
End.

Пример 3 . Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100км.

Program prim_10;
Var S:real;
N:integer;
Begin
S:=10;N:=1;
While s Begin
N:=n+1;
S:=s*0.1
End;
Writeln(‘ дневной пробег больше 20 км на ‘,n,’ день’);
S:=10;N:=1;
While s Begin
N:=n+1;
S:=s+s*0.1
End;
Writeln(‘за ‘,n,’ пробежит больше 100 км’);
Readln
End.

Тренировочные задания.
1. Даны целые числа а и b (а>b). Определить:
a. Результат целочисленного деления a на b, не используя стандартную операцию целочисленного деления;
b. Остаток от деления а на b не используя стандартную операцию вычисления остатка.

2. Известны оценки по информатике каждого из 20 учеников класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников имеют по информатике оценку «5»?. Условный оператор не использовать.

3. Напечатать минимальное число, большее 200, которое нацело делится на 17.

4. Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить: за какой месяц величина ежемесячного увеличения вклада превысит 30 руб.; через сколько месяцев размер вклада превысит 1200 руб.

5. *В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. дано натуральное число N. Как наименьшим количеством таких денежных купюр можно выплатить сумму N (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.

Разбор заданий урока 9.
5. Дано четырехзначное число N. Выяснить:
a. Является ли число палиндромом?

Для решения этой задачи надо записать число в обратном порядке. Для этого единицы умножаем на 1000, прибавляем число десятков умноженное на 100, число тысяч умножаем на 10 и прибавляем число десятитысяч. Если полученное число будет равно исходному, значит это палиндром.

Program prim9_5а;
Var x,y:integer;
Begin
Write(‘введите четырехзначное число’);
Readln(х);
y:=(x mod 10)*1000+((x div 10) mod 10)*100+((x div 100) mod 10)*10+x div 1000;
If x=y then writeln (‘число палиндром ‘)
Else Writeln(‘это не палиндром ‘);
Readln;
End.

6. Трамвайный билет имеет шестизначный номер. Выяснить, является ли билет «счастливым». Билет назовем «счастливым», если сумма первых трех цифр равна сумме последних трех цифр. Примечание. Так как шестизначное число больше 32767 (тип Integer), необходимо номер билета определит как тип Longint(до 10 знаков).

Program prim9_6;
Var x1,x2:integer;
x,:longint;
Begin
Write(‘введите номер билета’);
Readln(х);
X1:=x div 100000+(x div 10000) mod 10+(x div 1000) mod 10;
X2:=(x div 100) mod 10+(x div 10) mod 10+x mod 10;
If x1=x2 then writeln (‘ билет счастливый ‘)
Else Writeln(‘билет не счастливый ‘);
Readln;
End.

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

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

11.1.Оператор цикла REPEAT (цикл ДО).

Формат оператора:
REPEAT оператор; оператор;. оператор UNTIL логическое условие;

Часть программы, заключенная между служебными словами REPEAT и UNTIL, повторяется до тех пор, пока не станет истинным логическое выражение, стоящее после слова UNTIL. Между словами REPEAT (повторить) и UNTIL(до тех пор, пока) можно записать любое количество операторов без использования операторных скобок.
В отличие от оператора WHILE вычисление логического выражения происходит не до, а после очередного повторения цикла. Из-за этого цикл REPEAT обязательно выполнится хотя бы раз, а цикл WHILE может не выполнится ни разу. Если условие в цикле ПОКА является условием продолжения повторений, то условие в цикле ДО — условием выхода из цикла, его завершения. Поэтому для одной и той же задачи эти условия противоположны.

Пример 1. Составить программу подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+. 1/N используя оператор цикла REPEAT.

Program Summa;
Var S:real;
N:integer;
Begin
S:=0;N:=0;
repeat
N:=n+1;
S:=s+1/n
Until n>1000;
Writeln(s);
Readln
End.

11.2.Поиск наибольшего числа.

Предположим, нам необходимо ввести с клавиатуры N чисел, найти из них наибольшее и вывести его. Для решения этой задачи предлагается следующий алгоритм:

1. Ввести первое число в переменную Max.
2. Ввести следующее число в переменную Next.
3. Если Next>Max, то Max:=Next.
Пункты 2 и 3 повторять, пока не будут введены все числа.
4. Вывести значение переменной Max.

Действительно ли будет напечатано наибольшее из N чисел? Докажем это.

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

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

Program maximum;
Var N, max, next, k: integer;
Begin
Write(‘Введите количество чисел’); Readln(n);
Write(‘Введите число’); Readln(max);
k:=1;
repeat
Write(‘Введите число’); Readln(next);
K:=k+1;
If next>max then max:=next
Until k=n;
Writeln(max);
Readln
End.

Тренировочные задания.
1. Введите с клавиатуры 6 чисел и определите их среднее арифметическое.
2. Напишите программу, которая вводит целые числа с клавиатуры и складывает их, пока не будет введено число 0.
3. Напечатайте 20 первых степеней числа 2.
4. Найдите минимальное из N чисел.
5. Дано натуральное число. Выяснить, является ли оно простым, т.е. делится только на 1 и на само себя.

Цикл с известным числом повторений

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

13.1. Цикл ПЕРЕСЧЕТ (прямой).
Формат оператора:

FOR переменная := выражение 1 ТО выражение 2 DO оператор ;

Переменная должна быть порядкового типа. Порядковыми называются все простые типы, значения которых можно расположить в возрастающем порядке. Из известных нам это: INTEGER, WORD, LONGINT, BYTE, CHAR. Выражение 1 и Выражение 2 должны быть того же типа, что и переменная. Чтобы цикл выполнился хотя бы раз выражение1 должно быть не больше выражения2.

Выполнение начинается с вычисления значений выражения1 и выражения2. затем переменная получает значение выражения1 и делается проверка, не превышает ли значение переменной выражения2. Если не превышает, выполняется оператор стоящий после служебного слова DO. После завершения оператора переменная получает следующее по порядку значение, и все повторяется, начиная с проверки.

Когда значение переменной становится равным выражению2, оператор выполняется последний раз.

ПРИМЕР 1. Напечатать ряд из повторяющихся чисел 20 в виде:
20 20 20 20 20 20 20 20 20 20

var i: byte;
begin
for I:=1 to 10 do write(20,’ ‘);
readln;
end.

ПРИМЕР 2. Напечатать числа следующим образом:
10 10.4
11 11.4
. . .
25 25.4

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

var i: byte;
begin
for I:=10 to 25 do write(I,’ ‘,I+0.4:0:1);
вещественный результат, значит надо выполнить его
форматирование при выводе на экран>
readln;
end.

13.2. Цикл ПЕРЕСЧЕТ (обратный).
Возможен вариант оператора, когда переменная принимает последовательно убывающие значения.
Формат оператора:

FOR переменная := выражение 1 DOWNТО выражение 2 DO оператор ;

В этом случае, чтобы цикл выполнился хотя бы раз, выражение1 должно быть не меньше выражения2. Например:

For c:=’z’ downto ‘а’ do writeln(с);

Тренировочные задания.
1.Напечатать столбиком:
а) все целые числа от 20 до 35;
б) квадраты всех целых чисел от 10 до b (значение d вводится с клавиатуры; b>=10);
в) третьи степени всех целых чисел от а до 50 (значение а вводится с клавиатуры; а <=50);
г) все целые числа от а до b (значения а и b вводятся с клавиатуры; d>=a).

2. Напечатать числа следующим образом
25 25.5 24.8
26 26.5 25.8
. . .
35 35.5 34.8

3. Распечатать в столбик таблицу умножения на 7.

4. Вывести столбиком следующие числа: 2,1 2,2 2,3 . . . , 2,8

5. Вывести столбиком следующие числа: 2,2 2,4 2,6 . . . , 4,0 4,2

6. Вывести столбиком следующие числа: 4,4 4,6 4,8 . . . , 6,2 6,4

Решение задач. Цикл

Задача 1.
Дано натуральное число N. Определить, является ли оно простым, т.е. делится нацело только на 1 и на само себя. (Мы решали эту задачу в 12 уроке, но я хочу предложить вам другой алгоритм решения.)
Для решения необходимо проверить, делится ли исходное число на числа от 2 до N-1. Если число делится хотя бы на одно из чисел без остатка, то число N не будет простым. Мы можем уменьшить интервал проверяемых делителей так, как наибольший из возможных, это N/2. Введем так же дополнительную переменную F, она будет принимать значение 1, если обнаружится хотя бы один из делителей для исходного числа. Первоначально присвоим F значение 0, т.е. предположим, что число простое.
Переменные:
N — исследуемое число;
I — переменная цикла;
F — вспомогательная переменная.

Var I,n,f:word;
Begin
Write(‘Введите натуральное число’);
Readln(n);
F:=0;
For I:=2 to n div 2 do if n mod I=0 then f:=1;
If f=1 then writeln(‘число’,n:6,’ не простое’)
Else writeln(‘число’,n:6,’ простое’);
Readln
End.

Количество выполнения циклов можно еще уменьшить. Ведь на самом деле если число N делится на какое-то число А без остатка (кроме 1 и самого себя), то оно имеет и второй делитель В=N/A, т.е. если число не простое то его всегда можно записать как N=A*B. При возрастании первого делителя, значение второго будет уменьшаться. Получается, что достаточно проверить все числа от 2 до SQRT(n), но так как результат вычисления корня вещественный, а параметр цикла должен иметь целое значение, применим функцию определения целой части числа TRUNC, и получим:

For I:=2 to trunc(sqrt(n)) do if n mod I=0 then f:=1;

Задача 2.
Даны натуральные числа M и N. Определить, являются ли они взаимно простыми. Взаимно простые числа не имеют общих делителей, кроме 1.

Для решения задачи:
— вводим натуральные числа М и N;
— в цикле от 2 до наименьшего числа порождаем I и проверяем, является ли оно одновременно делителем М и N;
— в зависимости от значения F выводим результат.

Var k,m,n,f:word;
Begin
Write(‘Введите 2 натуральных числа’);
Readln(n,m);
F:=0;
if n>m then k:=m else k:=n;
for I:=2 to k do if (n mod I=0) and (m mod I = 0) then f:=1;
If f=1 then writeln(‘числа не взаимно простые’)
Else writeln(‘числа взаимно простые’);
Readln
End.

Тренировочные задания.

1. Дан интервал натуральных чисел от N до М. Определить все простые числа в этом интервале.
2. Дано натуральное число N. Определить все простые числа не превосходящие N.
3. Дано натуральное число N. Разложить его на простые множители.
4. Дано натуральное число N. Определить, является ли оно совершенным. Совершенное число N равно сумме всех своих делителей, не превосходящих само N.
5. Дано натуральное число N. Определить, является ли оно автоаморфным. Автоаморфное число N равно последним разрядам квадрата этого числа: 525, 636, 25625.

Обработка числовых последовательностей.

Сегодняшний урок мы посвятим обработке числовых последовательностей. Для этого обычно используется оператор цикла.
Алгоритмы для обработки последовательностей чаще относятся к одному из двух типов: поиск; проверка условий.
Для последовательностей характерно, что в каждый момент времени нам доступен только один элемент последовательности. Поэтому все алгоритмы строятся с учетом однократного последовательного просмотра.
Рассмотрим несколько программ. В каждой из них одновременно рассматривается только очередной член последовательности. Алгоритмы для решения таких задач называются алгоритмами с линейным поиском.

Задача 1.
Вводится последовательность из N целых чисел. Найти сумму всех отрицательных чисел.
Код программы.

Var I,n,x,sum:integer;
Begin
Write(‘Введите длину последовательности N=’);
Readln(n);
Sum:=0;
For I:=1 to n do
Begin
Write(‘Введите число’);
Readln(x);
if x end;
If sum=0 then writeln(‘отрицательных чисел нет’)
Else writeln(‘сумма отрицательных чисел =’, sum);
Readln
End.

Задача 2.
Вводится последовательность ненулевых чисел, 0 — конец последовательности. Определить, сколько раз последовательность меняет знак.

Var old, new: real;
K: integer;
Begin
Write(‘введите число’);
Readln(old);
Write(‘введите число’);
Readln(new);
K:=0;
Repeat
If new*old Old:=new;
Write(‘введите число’);
Readln(new);
Until new=0;
If k>0 then writeln (‘Последовательность меняет знак ‘,k,’ раз’)
else writeln (‘Последовательность не меняет знак ‘);
readln;
end.

Тренировочные задания.
1. Вводится последовательность из n произвольных чисел. Определить, сколько раз последовательность меняет знак.
2. Вводится последовательность чисел, 0-конец последовательности. Определить, содержит ли последовательность хотя бы два равных соседних числа.
3. Вводится последовательность чисел, 0-конец последовательности. Найти два наименьших числа.
4. Вводится последовательность из N целых чисел. Найти наибольшее из всех отрицательных чисел.
5. Вводится последовательность из N целых чисел. Найти, сколько в ней нулей.

Разбор заданий урока.
3. Дано натуральное число N. Разложить его на простые множители.

4. Дано натуральное число N. Определить, является ли оно совершенным. Совершенное число N равно сумме всех своих делителей, не превосходящих само N.

Var n,i,sum:word;
Begin
Write(‘ Введите натуральное число ‘);
Readln(n);
Sum:=0;
for i:=1 to n div 2 do if n mod I=0 then sum:=sum+i;
If sum=n then writeln(‘ число ‘,n,’ совершенное ‘)
Else writeln((‘ число ‘,n,’ не совершенное ‘ );
Readln
End.

5. Дано натуральное число N. Определить, является ли оно автоморфным. Автоморфное число N равно последним разрядам квадрата этого числа: 525, 636, 25625.

Var n,r,m:word;
Begin
Write(‘Введите натуральное число’);
Readln(n);
M:=n; r:=1;
While m>0 do
Begin
M:=m div 10;
R:=r*10;
End;
If (n*n mod r)=n then writeln(‘число ‘,N,’ автоморфно’)
Else writeln((‘число ‘,N,’ не автоморфно’ );
Readln
End.

Решение задач

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

Составить программу, которая в зависимости от порядкового номера дня недели (1, 2, . 7) выводит на экран его название (понедельник, вторник, . воскресенье).
Для этого воспользуемся условным оператором.

Var x: byte;
Begin
Write(‘ введите число от 1 до 7’);
Readln(x);
If x=1 then writeln(‘понедельник’);
If x=2 then writeln(‘вторник’);
If x=3 then writeln(‘среда’);
If x=4 then writeln(‘четверг’);
If x=5 then writeln(‘пятница’);
If x=6 then writeln(‘суббота’);
If x=7 then writeln(‘воскресенье’);
Readln
End.

А если бы речь шла о названия месяца, то операторов пришлось бы использовать еще больше, так как условный оператор позволяет осуществлять ветвление программы только по двум направлениям, одно из которых соответствует выполнению проверяемого условия, а другое — невыполнению этого же условия. А если для переменной необходимо выполнить в зависимости от условий ряд действий придется использовать вложенные операторы или несколько операторов подряд.

В таком случае лучше подойдет оператор ВАРИАНТА (или ВЫБОРА).

Если условный оператор напоминает дорожную развилку, то оператор выбора — это разделение пути на множество дорог, по одной из которых пойдет выполнение программы.

CASE выражение OF
P1: оператор 1 >;
P2: оператор 2 >;
. . .
PN: оператор N >;
ELSE оператор N+1 >
END;

Выражение порядкового типа вычисляется, и его значение отыскивается в одном из списков констант. После этого выполняется соответствующий оператор. Если значение выражения не совпало ни с одной из меток, то выполняется оператор из строки ELSE. Cокращенная форма оператора не содержит ELSE. Метки оператора варианта могут быть константами любого типа, но их тип должен совпадать с типом выражения.

Тогда код нашей программы будет выглядеть иначе:

Var x: byte;
Begin
Write(‘ введите число от 1 до 7’); Readln(x);
Case x of
1: writeln(‘понедельник’);
2: writeln(‘вторник’);
3: writeln(‘среда’);
4: writeln(‘четверг’);
5: writeln(‘пятница’);
6: writeln(‘суббота’);
7: writeln(‘воскресенье’);
end;
Readln
End.

Если при выборе альтернативы необходимо выполнение нескольких операторов, то нужно заключить их в операторные скобки BEGIN . . . END;, т.е. использовать составной оператор.
При использовании оператора CASE можно использовать диапазон допустимых значений параметра. Например, чтобы определить, введена ли как символьная переменная цифра, можно написать:

CASE I OF
‘0’..’9′:writeln(‘цифра’);
ELSE writeln (‘не цифра’)
END;

Задача. Для целого числа K от 1 до 99 напечатать фразу «Мне k лет», учитывая при этом, что при некоторых значениях K слово «лет» надо заменить на слово «год» или «года». Например, 11 лет, 22 года, 51 год. (Данное решение можно улучшить используя дополнительно условный оператор. Попробуйте.)

var k:byte;
begin
write(‘Введите число лет’); readln(k);
case k of
1,21,31,41,51,61,71,81,91:writeln(‘Мне ‘,k,’ год’);
2..4,22..24,32..34,42..44,52..54,62..64,72..74,82..84,92..94:writeln(‘Мне ‘,k,’ года’);
else writeln(‘Мне ‘,k,’ лет’);
end;
readln;
end.

Тренировочные задания:
1. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, . 12) выводит на экран его название (январь, февраль, . декабрь).
2. Написать программу, которая бы по введенному номеру месяца выдавала соответствующее этому месяцу время года.
3. Составить программу, которая читает натуральное число N в десятичном представлении (N<=10000), а на выходе выдает это же число в десятичном представлении и на естественном языке. Например: 7 - семь, 204 - двести четыре, 52 - пятьдесят два.

Задачи на повторение:
4. Дано натуральное число. Определить, является ли разность его максимальной и минимальной цифр четным числом.
5. Дано натуральное число. Определить, сколько раз в нем встречается цифра, равная старшей.

в паскаль сделать цикл типа пока: напечатать минимальное число большее 200 которое нацело делится на 17.СРОЧНО.

m0nclous

Var i:integer;
Begin
i:=200;
while (i mod 17 <> 0) do i:=i+1;
writeln(i);
end.

Новые вопросы в Информатика

Визначити довжину двійкового коду (в байтах) текстового повідомлення «Все буде добре.» при стандартному кодуванні символів.

складіть програму обчислення об’єму куба (V=а*а*а)25 балов ​

складіть програму обчислення виразу 2х²-4х+525 балов​

складіть програму обчислення добутку двох чисел 30 балов ​

Что такое шифрование информации

Напечатать минимальное число большее 200 которое нацело делится на 17

writeln(‘Количество слагаемых: ‘,i-1);

writeln(‘Значение последнего слагаемого: ‘,1/(i-1):0:6);

writeln(‘Значение следуещего слагаемого (не учитываемого): ‘,r:0:6);

Пример 3 . Вычислить наибольший общий делитель двух натуральных чисел А и В.

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

Program NOD ;
Var a,b:integer;
Begin
Write (‘ введите два натуральных числа ‘)
Readln(a,b)
While a<>b do
If a>b then
a:=a-b
else
b:=b-a;
Writeln(‘ НОД =’,a);
Readln
End.

Тренировочные задания.

1. Найти сумму S всех целых чисел, принадлежащих отрезку [ A , B ]. A и B предварительно ввести с клавиатуры.

2. Определить, сколько целых чисел принадлежит отрезку [ A , B ]. A и B предварительно ввести с клавиатуры.

3 . Вводятся оценки по информатике каждого из студентов. В начале вводятся все пятерки, затем все остальные оценки. Сколько студентов имеют по информатике оценку «5»?. Условный оператор не использовать.

4 . Даны целые числа а и b (а>b). Определить:
a. Результат целочисленного деления a на b, не используя стандартную операцию целочисленного деления;
b. Остаток от деления а на b не используя стандартную операцию вычисления остатка.

5 . Напечатать минимальное число, большее 200, которое нацело делится на 17.

6 . Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить: за какой месяц величина ежемесячного увеличения вклада превысит 30 руб.; через сколько месяцев размер вклада превысит 1200 руб.

7 . *В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. дано натуральное число N. Как наименьшим количеством таких денежных купюр можно выплатить сумму N (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.

Раздел 6. Операторы цикла с условием

6.1. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 10 до 30. Оформить этот фрагмент в виде:

а) оператора цикла с предусловием;

6) оператора цикла с постусловием.

6.2. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» квадратных корней из всех целых чисел от А до В (А > В). Оформить этот фрагмент в виде:

а) оператора цикла с предусловием;

6) оператора цикла с постусловием.

6.3. Дано натуральное число. Определить:

а) количество цифр в нем;

б) сумму его цифр;

в) произведение его цифр;

г) среднее арифметическое его цифр;

д) сумму квадратов его цифр;

е) сумму кубов его цифр;

ж) его первую цифру;

з) сумму его первой и последней цифр.

6.4. Даны целые числа а, b (а > b). Определить:

а) результат целочисленного деления, а на b, не используя стандартную операцию целочисленного деления;

6) остаток от деления, а на b, не используя стандартную операцию вычисления остатка.

6.5. Известны оценки по информатике каждого из 20 учеников класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников имеют по информатике оценку «5»? Условный оператор не использовать. Рассмотреть два случая:

а) известно, что пятерки не у всех учеников класса;

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

6.6. Известны сведения о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количества первых дней месяца непрерывно, начиная с первого мая, осадков не было. Условный оператор не использовать. Рассмотреть 2 случая:

а) известно, что в какие-то дни мая осадки выпадали;

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

6.7. Напечатать минимальное число, большее 200, которое нацело делится на 17.

6.8. Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.

6.9. Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить:

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

б) через сколько месяцев размер вклада превысит 1200 руб.

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

а) в какой день он пробежит больше 20 км;

б) в какой день суммарный пробег за все дни превысит 100 км.

6.11. В некотором году (назовем его условно первым) на участке в 100 гектаров средняя урожайность ячменя составила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 570, а средняя урожайность — на 2%. Определить:

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

б) в каком году площадь участка станет больше 120 гектаров;

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

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

6. 13. Найти наименьшее общее кратное двух заданных натуральных чисел.

6.14. Даны натуральные числа а и b, обозначающие соответственно числитель и знаменатель дроби. Сократить дробь, т.е. найти такие натуральные числа р и q, не имеющие общих делителей, что p / q = a/b.

6.15. Даны натуральные числа m и n. Получить все кратные им числа, не превышающие m*n. Условный оператор не использовать.

6.16. В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано натуральное число n. Как наименьшим количеством таких денежных купюр можно выплатить сумму n (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.

6.17. Дано натуральное число (пусть запись этого числа в десятичной системе имеет вид аk , ak-1. а0). Найти:

а) знакочередующуюся сумму цифр этого числа а0— a1, +. +(— 1) k аk;

б) знакочередующуюся сумму цифр этого числа а0— а1, +. +(— 1) k а0.

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

6.18. Дано натуральное число.

а) Напечатать число, получаемое при прочтении его цифр справа налево.

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

в) Удалить из него все цифры А.

г) Переставить его первую и последние цифры.

д) Приписать к нему такое же число.

6.19. Дано натуральное число. Определить номер цифры 3 в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой правой из них,

6.20. Дано натуральное число. Определить сумму m его последних цифр.

6.21. Дано натуральное число. Найти его наименьший делитель, отличный от 1.

6.22. Дан прямоугольник с размерами 425 x 131. От него отрезают квадраты со стороной 131, пока это возможно. Затем от оставшегося прямоугольника вновь отрезают квадраты со стороной, равной 425— 131*3 = 32, и т.д. На какие квадраты и в каком их количестве будет разрезан исходный прямоугольник?

6.23. Дан прямоугольник с размерами а и b. От него отрезают квадраты максимального размера, пока это возможно. Затем от оставшегося прямоугольника вновь отрезают квадраты максимально возможного размера и т.д. На какие квадраты и в каком их количестве будет разрезан исходный прямоугольник?

6.24. Найти приближенное значение корня уравнения f ( x ) = 0 на отрезке [а, b]:

а) х 4 +2х 3 —х—1=0, а=0,b = 1,

б) х 3 — 0,2х 2 — 0,2х — 1,2 = 0, а = 1, b = 1,5.

6. 25. Даны последовательность вещественных чисел а1, а2. a15., упорядоченная по возрастанию, и число, не равное ни одному из чисел последовательности и такое, что a 1 < n < а15.

а) Вывести все числа последовательности, меньшие n.

б) Найти два элемента последовательности (их порядковые номера и значение), в интервале, между которыми находится значение n. В обеих задачах условный оператор не использовать.

6.26. Известны данные о росте 15 юношей класса, упорядоченные по убыванию. Нет ни одной пары учеников одинакового роста. В начале учебного года в класс поступил новый ученик. Какое место в перечне ростов займет рост этого ученика? Известно, что его рост не совпадает с ростом ни одного из учеников класса, превышает рост самого низкого ученика и меньше роста самого высокого. Условный оператор не использовать.

6.27. Известно количество очков, набранных каждой из 20 команд — участниц первенства по футболу. Перечень очков дан в порядке убывания (ни одна пара команд не набрала одинакового количества очков). Определить, какое место заняла команда, набравшая N очков (естественно, что значение N имеется в перечне). Условный оператор не использовать.

6.28. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти:

а) сумму всех чисел последовательности;

б) количество всех чисел последовательности.

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

6.30. Дана непустая последовательность положительных целых чисел а1,a2…., оканчивающаяся нулем.

6.31. Дана последовательность из n вещественных чисел. Первое число в последовательности нечетное. Найти сумму всех идущих подряд в начале последовательности нечетных чисел. Условный оператор не использовать.

6.32. Дана последовательность из n вещественных чисел, начинающаяся с отрицательного числа. Определить, какое количество отрицательных чисел записано в начале последовательности. Условный оператор не использовать.

6. 33. Дана последовательность целых чисел а1, a2. a18, в начале которой записано несколько равных между собой элементов. Определить количество таких элементов последовательности. Условный оператор не использовать

6.34. Дана последовательность целых чисел, оканчивающаяся нулем. Общее количество чисел в последовательности не меньше трех (включая последний ноль). В начале последовательности записано несколько равных между собой элементов. Определить количество таких элементов последовательности. Условный оператор не использовать.

6. 35. Определить:

а) является ли заданное число степенью числа 3;

б) является ли заданное число степенью числа 5.

6.36. Известен факториал числа n. Найти это число

(факториал числа n равен 1 * 2*. *n).

6. 37. Дано число n.. Из чисел 1, 4, 9, 16, 25. напечатать те, которые не превышают n.

6.38. Среди чисел 1, 4, 9, 16, 25. найти первое число, большее n..

6.39. Дано число n.

а) Напечатать те натуральные числа, квадрат которых не превышает n.

б) Найти первое натуральное число, квадрат которого больше n.

6.40. Дано число а (1 < а 1,5). Из чисел 1+1/2, 1+1/3. напечатать те, которые не меньше а.

6.42. Рассмотрим последовательность чисел: 1+1/2, 1+ 1/3. 1+1/n Напечатать все значения n, при которых все числа последовательности будут не меньше а (1< a 1,5).

6.44. Дано вещественное число а. Из чисел 1, 1+ + . напечатать те, которые меньше а.

6.45. Среди чисел 1, 1+ , 1+ + . найти первое, большее числа n.

6.46. Дано вещественное число а. Напечатать все значения n, при которых

6.47. Дано вещественное число а. Найти такое наименьшее n, что

6.48. Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2. в которой числитель (знаменатель) следующего члена последовательности получается сложением числителей (знаменателей) двух предыдущих членов. Числители двух первых дробей равны 1 и 2, знаменатели — 1 и 1. Найти первый член такой последовательности, который отличается от предыдущего не более чем на 0,001.

6.49. Даны положительные вещественные числа а, х, e. В последовательности у1, у2. образованной по закону:

найти первый член уn, для которого выполнено неравенство| y | < e

6.50. Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1, каждый следующий равен сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13. ). Найти:

а) первое число в последовательности Фибоначчи, большее n (значение n вводится с клавиатуры; n > 1);

б) сумму всех чисел в последовательности Фибоначчи, которые не превосходят 1000.

6.51. Дано натуральное число. Определить, является ли оно членом последовательности Фибоначчи (см. предыдущую задачу).

6.52. Выяснить, входит ли заданное число а в последовательность чисел 1, 2, 5, 12, 29, 70.

6.53. Выяснить, является ли заданное число n членом арифметической прогрессии, первый член которой равен f, а шаг — s.

6.54. Выяснить, является ли заданное число m членом геометрической прогрессии, первый член которой равен g, а знаменатель — z.

Воспользуйтесь поиском по сайту:

studopedia.org — Студопедия.Орг — 2014-2023 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с) .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *