Цикл FOR удобно использовать тогда, когда точно известно количество повторений.
Ветвления в Pascal
§1 Условный оператор. Структура условного оператора.
Если в зависимости от первоначального условия задачи, должны выполняться различные выражения, то мы будем использовать условный оператор.Условный оператор может быть записан в полной и неполной форме.
полная форма условного оператора
if < условие> then <оператор 1 > else < оператор 2 >
неполная форма условного оператора
if < условие> then <оператор >
if then else –зарезервированные слова (если, то, иначе)
1. Даны два числа. Найти большее из них.
program zadacha_1;
Uses Crt; {Подключение библиотеки Crt} Var x, y, max:real;
Begin
ClrScr; {Вызов из библиотеки Crt процедуры очистки экрана}
writeln('Введите число x, х= '); readln(x);
writeln(' Введите число y= '); readln(y);
if x>y then max:=x else max:=y;
writeln('большее из двух = ',max);
readln;
End.
| 2. Даны три числа. Найти максимальное.
program zadacha_2;
Uses Crt;
var max,x,y,z:real;
Begin
ClrScr;
writeln(' Введите три числа ');
readln(x,y,z);
if x>y then max:=x else max:=y;
if z>max then max:=z;
writeln('большее из трёх =',max);
readln;
End.
|
3. Задано число a. Кратно ли оно 3.
program zadacha_3;
Uses Crt;
var а:longint;
Begin
ClrScr;
writeln(' Введите число');
readln(а);
if a mod 3 =0 then writeln(a,' кратно 3’)
else writeln(a,' не кратно 3’);
readln;
End.
Вместо условия a mod 3=0напишите условие int(a/3)=a/3.
4. Дано три числа x, y, z. Вычислить сумму только положительных чисел из трех данных.
program zadacha_4;
Uses Crt;
var x,y,z,sum:real;
Begin
ClrScr;
writeln('Введите три числа');
readln(x,y,z);
sum:=0;
if x>0 then sum:=sum+x;
if y>0 then sum:=sum+y;
if z>0 then sum:=sum+z;
writeln('сумма положительных чисел = ',sum);
readln;
End.
Задания для самостоятельной работы:
1. Задано x. Вычислить у
a) б)
2. Даны два числа. Найти меньшее из них.
3. Даны три числа. Найти минимальное число.
4. Задано натуральное число a. Является ли оно чётным? Решите задачу a) используя операцию mod;
b) используя функцию int.
5. Задано натуральное число a. Является ли оно кратным 7?
6. Задано натуральное число a. Заканчивается ли оно на 0?
7. Дано трехзначное число. Кратна ли сумма его цифр шести?
8. Дано целое число a>9. Больше ли цифра десятков цифры единиц?
9. Дано двузначное число. Является ли сумма его цифр
a) однозначным числом;
b) двузначным числом.
10. Задано двухзначное число. Дайте характеристику числа по следующему плану:
- сумма цифр числа;
- число чётное (нечётное);
- число большее (меньше) пятидесяти;
- первая цифра равна (неравна) второй цифре.
11. Даны два вещественных числа. Уменьшить первое число в пять раз, если оно больше второго по абсолютной величине.
12. Заданы три числа x, y, z. Вычислить произведение только отрицательных чисел из трех данных.
13. Заданы четыре целых числа x, y, z, w. Вычислить сумму только четных чисел из четырёх заданных.
14. Дано три числа x, y, z. Вычислить количество чисел больших 7.
Операторные скобки. Составной оператор.
Если необходимо, чтобы выполнялось несколько операторов их нужно взять в операторные скобки:
Begin
end;
Группу операторов находящуюся внутри операторных скобок будем называть составным оператором. Фактически, весь раздел операторов, внутри операторных скобок, представляет собой один составной оператор.
Для того, чтобы при большом количестве операторных скобок, программа была более читаемая. End желательно записывать под begin.
5. Даны действительные числа x, y (x≠y). Меньшее из этих двух чисел заменить их суммой, а большее - их произведением.
program zadacha_5;
Uses Crt;
var a,b,sa,sb:longint;
Begin
ClrScr;
writeln('Введите два числа');
readln(a,b);
sa:=a; sb:=b;
if a>b then
begin
b:=sa+sb;
a:=sa*sb;
end
else
begin
a:=sa+sb;
b:=sa*sb;
end;
writeln ('первоначальные числа a=',sa,' b=',sb);
writeln ('полученные числа a=',a,' b=',b);
readln;
End.
6. Составить программу решающую квадратное уравнение вида ax2+bx+c=0.
program zadacha_6;
Uses Crt;
var a,b,c:integer;
x,d,x1,x2:real;
Begin
ClrScr;
writeln('введите коэффициенты а,b,c');
readln(a,b,c);
d:=b*b-4*a*c; {вычисление дискриминанта}
if d<0 then writeln('уравнение не имеет корней');
if d=0 then
begin
writeln('уравнение имеет 1 корень');
x:=-b/(2*a);
writeln('x= ',x);
end;
if d>0 then
begin
writeln('уравнение имеет 2 корня');
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('x1= ',x1);
writeln('x2= ',x2);
end;
readln;
End.
Задания для самостоятельной работы:
15. Даны действительные числа x, y (x≠y). Меньшее из этих двух чисел заменить их полусуммой, а большее - их удвоенным произведением.
16. Даны два целых числа M, N. Если M делится нацело на N, то вывести на экран частное от деления, в противном случае - сообщение "M на N нацело не делится".
17. Даны три числа. Удвоить их, если они упорядочены по возрастанию, иначе отрицательные заменить их модулями.
18. Даны три числа. Удвоить их, если они целые, иначе нецелые заменить их целыми частями.
19. Дано натуральное число n (n £ 9999). Если число четырёхзначное, то получите и выведите перевёртыш этого числа (3528 → 8253), иначе выведите ответ "Число не четырехзначное".
20. Дано натуральное число n. Если оно двухзначное, то впишите в середину ноль (для 56 → 506), иначе выведите ответ "Число не двухзначное".
21. * Даны натуральные числа k, l ( 1£ k, l £ 8). На клетке (k, l) расположена шахматная фигура:
a) конь b) ферзь
Вывести на экран координаты клеток, на которые может походить данная фигура, при этом учитывайте, что нельзя выходить за пределы доски.
22. Задано натуральное число a. Является ли оно чётным?
23. Задано натуральное число a. Является ли оно кратным 9?
24. Дано трехзначное число. Кратна ли сумма его цифр семи?
25. Дано целое число a>9. Меньше ли цифра десятков цифры единиц?
26. Дано трёхзначное число. Является ли сумма его цифр двузначным числом.
27. Дано три натуральных числа x, y, z. Вычислить количество чисел меньших 50.
28. Найти количество положительных чисел среди четырех заданных чисел a,b,c,d.
29. Даны два вещественных числа. Уменьшить второе число в пять раз, если оно больше первого по абсолютной величине.
30. Задано x. Вычислить у
a) б)
31. Заданы два числа.
a) Является ли каждое из этих чисел большим 10?
b) Является ли хотя бы одно из этих чисел большим 10?
c) Является ли только одно из этих чисел большим 10?
32. Заданы два числа.
a) Является ли каждое из этих чисел чётным?
b) Является ли хотя бы одно из этих чисел чётным?
c) Является ли только одно из этих чисел чётным?
33. Заданы два натуральные числа. Является ли первое число двухзначным, а второе однозначным?
34. Заданы два числа. Является ли первое число отрицательным, а второе положительным?
35. Дано двузначное число. Является ли сумма его цифр двузначным числом кратным трём.
36. Проверить, является ли число трехзначным, у которого цифры образуют геометрическую прогрессию (например: 139, 842).
37. Заданы x1, y1, x2, y2 (x1,y1,x2,y2 ≠0). Лежат ли точки (x1, y1) и (x2, y2):
a) в одной четверти;
b) в разных четвертях.
38. Заданы действительные x и у. Принадлежит ли точка (x, y) ветви параболы (y=x2) лежащей во второй четверти?
39. Заданы действительные x и у. Принадлежит ли точка (x, y) заштрихованной части плоскости:
47. Определить, является ли данное целое число N четным трёхзначным числом.
48. Даны действительные положительные числа x, y, z.
a) Выяснить, существует ли треугольник с длинами сторон x,y,z.
b) Если треугольник существует, то ответить – является ли он остроугольным.
49. Даны действительные положительные числа a, b, c, x, y. Выяснить, пройдёт ли кирпич с рёбрами a, b, c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое его ребро было параллельно или перпендикулярно каждой из сторон отверстия.
50. Дано натуральное число n (n £ 9999).
a) Является ли это число палиндромом (перевёртышем) с учётом четырёх цифр, как, например, числа 2222, 6116, 0440 и т.д.?
b) Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006 и т.д.?
c) Верно ли, что все четыре цифры числа различны?
51. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали, второе – номер горизонтали. Даны натуральные числа k, l, m, n, каждое из которых не превосходит восьми. Требуется:
a) Выяснить, являются ли поля (k,l) и (m,n) полями одного цвета.
b) На поле (k, l) расположен ферзь. Угрожает ли он полю (m, n)?
c) Аналогично b), но ферзь заменяется на коня.
d) Выяснить, можно ли с поля (k, l) одним ходом ладьи попасть на поле (m, n). Если нет, то выяснить, как это можно сделать за два хода (указать поле, на которое приводит первый ход).
e) Аналогично d), но ладья заменяется на ферзя.
Модуль Crt
В модуле Crt находятся мощные подпрограммы, которые дают вам возможность полного управления текстовым режимом.
Модуль Crt содержит ряд процедур, позволяющих задавать цвет символов и экрана, очищать экран, менять позицию курсора и др.
Стандартный экран в Паскале чаще формируется из 25 сток и 80 столбцов. Строки нумеруются сверху вниз, а столбцы слева на право. Нумерация начинается с единицы (что может показаться непривычным).
Количество доступных цветов (для экрана и символов) всего 16. Они кодируются числами от 0 до 15. Также вместо чисел можно прописывать названия цветов.
Для того чтобы в программе можно было использовать содержимое модуля Crt, его надо импортировать (подключить) в программу. Делается это в секции, которая начинается со слова uses.
Чтобы очистить экран от всех надписей, требуется выполнить процедуру clrscr. Если перед этим был задан цвет экрана (с помощью textbackground), то экран будет залит соответствующим цветом.
Цвет текста определяется процедурой textcolor, позиция курсора – gotoxy.
Для вывода символов на экран используются стандартные процедуры write и writeln.
Также существует процедура временной задержки delay (аргумент задается в микросекундах), если требуется выводить символы не сразу, а постепенно.
Имя константы
| Номер цвета
| Цвет
| uses Crt;
begin
{ Зеленые символы на черном фоне }
TextColor(Green);
TextBackground(Black);
WriteLn('Привет!');
{ Мигающие светло-красные символы на сером фоне }
TextColor(LightRed + Blink);
TextBackground(LightGray);
WriteLn('Ещё раз привет!');
{ Желтые символы на синем фоне }
TextColor(14);
{ Константа Yellow = 14 }
TextBackground(Blue);
WriteLn('Ну, привет же !!!');
readln;
end.
|
| Black
| черный
|
| Blue
| Темно-синий
|
| Green
| Темно-зеленый
|
| Cyan
| Бирюзовый
|
| Red
| Красный
|
| Magenta
| Фиолетовый
|
| Brown
| Коричневый
|
| LightGray
| Светло-серый
|
| DarkGray
| Темно-серый
|
| LightBlue
| Синий
|
| LightGreen
| Светло-зеленый
|
| LightCyan
| Светло-голубой
|
| LightRed
| Розовый
|
| LightMagenta
| Малиновый
|
| Yellow
| Желтый
|
| White
| Белый
|
| Blink
| Мерцание символа
|
Циклы в Паскале
В процессе решения множества задач, часто требуется повторять те или иные действия. При этом бывают разные ситуации. Например:
- количество итераций (повторений) известно до выполнения тела цикла;
- до выполнения тела цикла количество итераций не известно;
- тело цикла должно выполниться хотя бы один раз.
Под разные ситуации существуют различные циклические конструкции. В языке программирования Pascal их три, в соответствие с пунктами описанными выше. Самой универсальной и поэтому чаще других используемой конструкцией цикла является второй вариант (цикл while).
Цикл for
Часто цикл for называют циклом со счетчиком. В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций.
Переменная внутри цикла изменяется автоматически от k до n (n>k) с шагом 1.
Формат записи цикла: for i:=k to n do
или
от n до k (n>k) с шагом -1.
Формат записи цикла: for i:=n dawnto k do
Если в цикле должны выполняться несколько операторов, то используем операторные скобки: begin …. end;
Цикл FOR удобно использовать тогда, когда точно известно количество повторений.
Задачи:1. Найти сумму всех натуральных чисел от 1 до n. program zadacha_1;
var i,n,s:integer;
Begin
writeln(' введите натуральное n'); readln(n);
s:=0;
for i:=1 to n do
s:=s+i;
writeln('сумма от 1 до',n,' = ',s);
End.
В данном цикле переменная i автоматически изменяется от 1 до n с шагом 1. Поэтому к переменной s прибавляется i вначале равная 1, потом 2, потом 3, и т.д. до n, соответственно переменная s принимает значении 1, 3, 6, 10, 15 ….…
- Задано натуральное n. Вычислить сумму ряда:
- ;
-
3. Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу N.4. Найти сумму всех нечётных трёхзначных чисел.5. Найти сумму положительных кратных 7 чисел, меньших 100.6. Найти все числа, которые делятся на N среди:a. всех двухзначных чисел;b. всех трёхзначных чисел.7. Составить программу вычисления суммы квадратов чисел от 1 до n.8. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13.9. Найти все делители для заданного числа n.10. Дано натуральное число n. Вычислить:a. 2n;b. 3nc. n!;11. Среди четырёхзначных чисел выбрать те, у которых:a. все четыре цифры различны (например: 3167, 9012);b. имеются три одинаковые цифры (например: 1311, 7779);c. цифры попарно различны (например: 1331, 7979, 2255);d. цифры образую возрастающую последовательность (например: 1389, 4678);12. Написать программу поиска чисел <1000, которые при делении на 2 дают в остатке 1, при делении на 3 дают в остатке 2, при делении на 4 - в остатке 3, при делении на 5 - в остатке 4, при делении на 6 - в остатке 5 а при делении на 7 дают в остатке 6. Вопросы для повторения:
1. Для чего предназначен оператор цикла?
2. Какие существуют циклы в языке Паскаль?
3. Какой формат записи имеет оператор FOR?
4. Как работает оператор FOR?
5. В каких случаях применяется оператор FOR?
6. Сколько раз будет выполнен цикл, и чему будет равна переменная S после выполнения:
s:=0; n=6;
for i:=3 to n do
s:=s+i;
7. Как в теле цикла выполнить несколько операторов?
Цикл while, цикл repeat
Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.
Если тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание.
Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз не зависимо от того, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.
В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь все наоборот: в случае true происходит выход из цикла, в случае false– его повторение.
- цикл WHILE с предусловием;
- цикл REPEAT...UNTIL c постусловием.
Эти циклы удобно использовать тогда, когда заранее неизвестно число повторений.
Задачи:
- Найти сумму всех натуральных чисел от 1 до n.
1) цикл FOR
program zadacha_13a;
var i,n,s:integer;
Begin
writeln(' введите натуральное n'); readln(n);
s:=0;
for i:=1 to n do
s:=s+i;
writeln('сумма от 1 до',n,' = ',s);
End.
2) цикл WHILE
program zadacha_13b;
var i,n,s:integer;
Begin
writeln('введите натуральное n'); readln(n);
s:=0; i: =1;
while i<=n do
begin
s:=s+i;
i:=i+1;
end;
writeln('сумма от 1 до',n,'=',s);
End.
Цикл WHILE будет выполняться до тех пор, пока выполняется условие i<=n. Причем переменную i изменяем внутри цикла.
3) цикл REPEAT
program zadacha_13c;
var i,n,s:integer;
Begin
writeln(' введите натуральное n'); readln(n);
s:=0; i:=1;
repeat
begin
s:=s+i;
i:=i+1;
end;
until i>n;
writeln('сумма от 1 до',n,' = ',s);
End.
Цикл REPEAT . . . UNTIL будет выполняться до тех пор, пока не выполниться условие i>n.
- Задано натуральное число n. Вычислить сумму цифр числа.
program zadacha_14;
var n,sum,cif:integer;
Begin
writeln('Введите n'); readln(n);
sum:=0;
while n>0 do
begin
cif:=n mod 10;
sum:=sum+cif;
n:=n div 10;
end;
writeln('Сумма цифр введённого числа = ',sum);
End.
- Найти минимальное натуральное число, которое при делении на 2 даёт в остатке 1, при делении на 3 даёт в остатке 2, при делении на 4 - в остатке 3, при делении на 5 - в остатке 4, при делении на 6 - в остатке 5 а при делении на 7 дают в остатке 6.
- Дано натуральное число n.
- Сколько цифр в числе n?
- Сколько чётных цифр в числе n?
- Дано натуральное число n.
a. Вычислить, входит ли цифра 3 в запись числа n2.
b. Поменять порядок цифр числа n на обратный.
c. Переставить первую и последнюю цифры числа n.
d. Приписать по единице в начало и в конец записи числа n.
e. Является ли число n - палиндромом? (9889 - да, 9878 -нет)
- Дано натуральное число n. Является ли n степенью 3.
- Для данного натурального числа m>1 найдите максимальное k, для которого ещё выполняется равенство 2k<m. (например, если m=10, то k=3).
- Для данного натурального числа m>1 найдите минимальное k, для которого уже выполняется равенство k!>m. (например, если m=10, то k=4).
Вопросы для повторения:
8. Какие циклы существуют в языке Паскаль?
9. Какой формат записи имеют циклы WHILE и REPEAT?
10. В каких случаях удобно применять эти циклы?
11. Чем отличается цикл WHILE от цикла REPEAT?
12. Будет ли остановлено выполнение данного цикла? Почему?
s:=0; i: =1;
while i<=4 do
s:=s+i;
Вложенные циклы
Для решения задачи достаточно часто требуется использовать несколько вложенных друг в друга циклических конструкций. Такие конструкции называют вложенными циклами.
Задачи:
21. Дано натуральное число S. Требуется написать программу для нахождения всех прямоугольников, площадь которых равна S и стороны выражены натуральными числами.
program zadacha_21;
var s, a, b:longint;
Begin
writeln('Введите s'); readln(s);
for a:=1 to s do
for b:=1 to s do
if a*b=s then writeln ('стороны ',a,' и ',b);
End.
Данную задачу можно было решить, используя только один цикл. Подумайте, как это сделать.
22. Даны натуральные числа n, m. Получить все натуральные числа, меньшие n, сумма квадратов цифр которых равна m.
23. Найти все решения заданного числового ребуса. Каждой букве соответствует некоторая цифра. Причём одинаковым буквам соответствуют одинаковые цифры, разным буквам - разные цифры.
Поскольку здесь всего три буквы, то для решения достаточно написать три вложенных цикла, и перебрать все варианты сложения трёхзначных чисел.
program zadacha_23a;
var k, t, o, kto, kot, tok:longint;
Begin
for k:=0 to 9 do
for t:=0 to 9 do
for o:=0 to 9 do
begin
kto:=k*100+t*10+o;
kot:=k*100+o*10+t;
tok:=t*100+o*10+k;
if (k<>t) and (k<>o) and (t<>o) and (kto+kot=tok) then
writeln(kto,'+',kot,'=',tok);
end;
End.
В данном алгоритме тело цикла выполнялось 10∙10∙10=1000 раз. (будем говорить сложность алгоритма =1000)
Если же для решения более сложных ребусов потребуется написать 8-10 вложенных циклов, то такой полный перебор будет работать достаточно долго.
Можно немного упростить данный алгоритм, если увидеть что 1≤k≤4, t≥2.
for k:=1 to 4 do
for t:=2 to 9 do
for o:=0 to 9 do
Теперь сложность алгоритма 4∙8∙10=320. Простое косметическое исправление дало увеличение скорости в 3 раза.
Но и данный алгоритм не является оптимальным. Посмотрите, при k=2 и t=2 программа переберёт все 10 вариантов o. В таких случаях когда k=t цикл по o вообще необходимо не выполнять.
Назовём такой метод - контролируемый перебор.
program zadacha_23c;
var k, t, o, kto, kot, tok:longint;
Begin
for k:=1 to 4 do
for t:=2 to 9 do
if k<>t then
for o:=0 to 9 do
if (k<>o) and (t<>o) then
begin
kto:=k*100+t*10+o;
kot:=k*100+o*10+t;
tok:=t*100+o*10+k;
if kto+kot=tok then writeln(kto,'+',kot,'=',tok);
end;
End.
Такой алгоритм даже при 8-10 вложенных циклах работает очень быстро.
24. Старинная задача. Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова – 5 рублей, телёнок – полтинник (0,5 рубля), при условии, что на 100 рублей надо купить 100 голов скота.
25. Задано натуральное n. Для всех чисел от 1 до n найти:
a. количество делителей;
b. сумму чётных делителей.
26. Найти все решения следующих числовых ребусов:
a) БАБКА+ДЕДКА+РЕПКА=СКАЗКА (4 решения)
b) КОРОВА+ТРАВА+ДОЯРКА=МОЛОКО (2 решения)
c) АЛЁНКА+ИВАН+КОЗЛИК=СКАЗКА (1 решение)
d) ВЕТКА+ВЕТКА+СТВОЛ=ДЕРЕВО (3 решения)
e) ВОРОТА+ТРАВА=ФУТБОЛ (3 решения)
Вопросы для повторения:
13. Может ли во вложенных циклах использоваться одна и та же переменная, например i?
14. Можно ли вкладывать друг в друга различные циклы: FOR в WHILE или REPEAT в FOR?
Задачи:
27. Построить и записать в виде программы алгоритм вычисления суммы квадратов десяти произвольных чисел, водимых с клавиатуры в процессе выполнения программы.
28. Вывести все чётные числа начиная с числа N и до числа M. Числа N и M задает пользователь.
29. Составить программу, проверяющую, является ли последовательность из 10 целых чисел, вводимых с клавиатуры, возрастающей.
30. Составить программу, печатающую все делители целого числа в порядке возрастания.
31. Составить программу нахождения суммы чётных чисел, находящихся в промежутке от 26 до 88.
32. Найти наибольший общий делитель двух натуральных чисел a и b.
33. Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня.
а) Определить через сколько дней спортсмен пробежит суммарный путь более 100 км.
б) Определить через сколько дней спортсмен будет пробегать более 20 км.
в) Какой путь пробежит спортсмен на 7-й день.
34. Вводятся 14 чисел. Определить, сколько среди них положительных (включая 0) и сколько отрицательных. (Числа вводятся в одну переменную в цикле)
35. Составить программу, печатающую все делители целого числа в порядке убывания.
36. Вывести на экран числа, кратные К из промежутка [А,В]. Числа А, В, К задает пользователь.
37. Запросите у пользователя положительное число А и найдите сумму всех натуральных чисел из промежутка [1, А].
38. Дано натуральное число n. Вычислить: .
39. Даны действительное число a, натуральное число n. Вычислить:
a. an;
b. a(a + 1) …(а + n – 1).
40. Вычислить 1 - следующими четырьмя способами:
a. последовательно слева направо;
b. последовательно слева направо вычисляются и , затем второе значение вычитается из первого;
c. последовательно справа налево;
d. последовательно справа налево вычитаются суммы, выписанные в б), затем вычитание.
Почему при вычислениях каждым из этих способов получаются разные результаты?
41. Составьте программу возведения натурального числа в квадрат, используя следующую закономерность:
12 = 1
22 = 1 + 3
32 = 1 + 3 + 5
42 = 1 + 3 + 5 + 7
. . .
n2 = 1 + 3 + 5 + 7 + 9 + … + (2n – 1).
42. Написать программу поиска двузначных чисел, удовлетворяющих следующему условию: если к сумме цифр числа прибавить квадрат этой суммы, то получится само число.
43. Написать программу поиска четырёхзначного числа, которое при делении на C даёт в остатке B, а при делении на B даёт в остатке D.
44. Найти сумму положительных нечётных чисел, меньших N.
45. В трёхзначном числе зачеркнули старшую цифру, когда полученное двузначное число умножили на 7, то получили данное число. Найти это число.
46. Сумма цифр трёхзначного числа кратна 7, само число также делится на 7. Найти все такие числа.
47. Среди четырёхзначных чисел выбрать те, у которых все четыре цифры различны.
48. В 1626 году индейцы продали остров Манхеттен за 20$. Если бы эти деньги были помещены в банк на текущий счёт и ежегодный прирост составил k%, то какова была бы сумма в текущем году?
49. Найти минимальное число, большее N, которое нацело делится на K (K, N - натуральные числа).
50. Приписать по цифре 1 в начало и в конец записи числа n. (Например, ввод n = 923, вывод 19231).
51. Выяснить, сколько раз в натуральном числе встречается его максимальная цифра. (Например, ввод 4423, вывод 2 раза; ввод 9077, вывод 1 раз).
52. Составить программу, печатающую k-ю цифру последовательности:
12345678910 …, в которой выписаны подряд все натуральные числа;
14916253649 …, в которой выписаны подряд квадраты всех натуральных чисел;
53. Составить программу для нахождения всех натуральных чисел n, m, k из интервала [a, b], удовлеовторяющих соотношению n2 + m2 = k2 (a и b заданы).
54. Стороны прямоугольника заданы натуральными числами M и N. Составить программу, которая будет находить, на сколько квадратов, стороны которых выражены натуральными числами, можно разрезать данный прямоугольник, если от него каждый раз отрезается квадрат максимально возможной площади.
Массивы
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|