Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 1




Ргодгаш Ехашр1е_1/

Уаг а,Ъ,гег: 1п"Ьедег;

Вед±п ДО гл_-Ье1п ('Введите два числа через пробел');

КеасИп (а, Ъ) ;

гег:=а*Ъ;

ДОгл_"Ье1п ( [3] Их произведение равно1, гег) ;

Юг1"Ье1п (' Нажмите <Еп-Ьег>');

КеасИп;

Епс1.

Пояснения к программе

Имя этой программы Ехашр1е_1. Из разделов описаний имеется лишь один — раздел переменных. Он начинается со служебного слова Уаг, после которого идет последовательность объявления переменных. После описательной части идет раз­дел операторов, начинающийся со служебного слова Вед±п, после которого идут операторы языка. Первый встречающийся оператор — это ^гИ:е1п (1 текст') ; - записать (вывести) на экран текст, заключенный между апострофами, 1п добавля­ется в конце этого оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения про­граммы. Следующий оператор — это Кеас11п (а, Ъ) ; — читать данные с клавиатуры. В данном случае необходимо ввести два целых числа через пробел, тогда переменной а присваивается значение, равное первому введенному числу, а переменной Ь присва­ивается значение, равное второму введенному числу. Например, вы ввели числа 12 и 45, тогда а = 12, а Ь = 45. В конце этого оператора также можно ставить 1п.

После этих двух операторов стоит оператор присваивания: гег:=а*Ъ; (: = - это знак присваивания в языке Паскаль). При выполнении этого оператора пере­менная гег получит значение, равное произведению числа а на число Ь.

Следующий оператор — это снова оператор ыг±Ье1п (' текст 1, гег) — он выведет на экран текст, заключенный между апострофами, а за ним значение переменной гег. Затем следующий оператор ^гИе1п выведет на экран сообще­ние: «Нажмите <Еп1;ег>», а оператор геас11п будет ожидать этого нажатия в окне


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

5. Провести компиляцию программы командой из меню СОМР1ЬЕ. Добиться успешной компиляции, исправляя указанные системой ошибки.

6. Запустить программу на выполнение командой из меню К1Ж. На экране появляется сообщение:

Введите два целых числа через пробел.

Наберите на клавиатуре два целых числа через пробел и нажмите <Еп1ег>. Пос­ле этого появляется сообщение:

Произведение равно...

Нажмите <Еп1ег>.

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

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

б) измените программу для нахождения суммы четырех чисел;

в) найдите значение выражения (а + (д — 12)3) (с — 5к), где значения перемен­ных а, с!, с и к вводятся с клавиатуры.

7. Сохраните текст программы в виде файла с помощью команд РНе/8ауе а8. Например: с:\рпш1_1.ра8; здесь с:\ — это название диска, на котором будем

сохранять файл.

Задания для самостоятельной работы

1. Найдите периметр:

а) прямоугольника (ширину и длину вводить с клавиатуры);

б) треугольника (длины всех сторон вводить с клавиатуры);

в) произвольного четырехугольника.

2. Вычислите значение выражения:

а) у = 15х2 + 8х - 9;

б) а = (Ь + с)й - к.

3. Вычислите рациональным способом, то есть за минимальное число операций:

а) у = х5 (у = (х2)2*, то есть за три операции);

б) у = х6 (у = (х3)2 = (х2х)2, то есть за три операции);

в) у = х8 (у = ((х2)2)2, тоже за три операции).

4. Найдите значение выражения:

а) У = \х\ + х4 5 при х = —3; х = 3;

б) а = |х| + 4х3 - 7х2, при х = 2; х = -2;

в) I = |х - 2| + Зх8, при х = —2; х = 1;

г) а = 6Ъ2 + |Ь- З|3 - 15 , при Ь = 9; Ь = -3.

5. Напишите программу вычисления значения выражения:

а)у= (Зх3 + 18х2)х + 12Х2- 5;

б) а = (а + с + Ь)е - 5к - 1;

в) й =3с3 +|с2 -4с + 7|3 -5с;

г) с =\х + 4\ - |х2 - Зх + б|.

6. Поменяйте местами значения переменных х и у:

а) у с использованием промежуточной переменной (ъ:=х; х:=у; у :=*:;);

б) без использования промежуточной переменной (х:=х-у;у:=х+у;х:=у-х;).

Упражнение № 2. Целый и логический типы данных. Условный оператор

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

Пример 2. Вывести на экран большее из двух данных чисел.

Ргодгат Ехатр1е_2; Уаг х,у: 1п-Ьедег; Вед±п

('введите 2 числа'); КеасИп (х, у) ; {вводим два целых числа через пробел} 11 х>у ТЬеп ЭДгИ:е1п(х) {если (1^)х больше у, то (ТЬеп) выводим х} Е1зе ДОг1-Ье1п (у) ; {иначе (Е1зе) выводим у} Кеас11п; Епс1.

Пример 3. Даны целые числа а, Ь, с. Если а<Ь<с, то все числа заменить их квад­ратами, если а >Ь>с, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа. Решение.

Условие задачи перепишем следующим образом:

а = а1, Ь = Ь2, с = с2, если а <= Ь <= с, а — с, Ъ — с, если а > Ъ > с,

а = —я, Ъ = —Ь, с = —с, в остальных случаях.

Ргодгат Ехатр1е_3; Уаг а,Ъ,с: 1п1:едег; Вед±п

ДОг1-Ье1п (' Введите числа а, Ъ, с');

Кеас11п (а,Ъ, с) ;

11 (а<=Ь) Апс! (Ь<=с) ТЬеп

Вед±п а:=здг(а); Ь:=здг(Ь); с:=здг(с) Епс! Е1зе 11 (а>Ь) Апс! (Ь>с) ТЬеп Вед±п а:=с; Ь:=с Епс! Е1зе Вед±п а:=-а; Ъ:=-Ъ; с:=-с Епс1; (а:3АЬ:3Ас:3);

Кеас11п; Епс1.

Задания для самостоятельной работы

1. Какими будут значения переменных у, к после выполнения условного опе­ратора: 11 ^>к тЬеп ^=к-2 Е1зе с!ес(к,2); если исходные значения перемен­ных равны а) у = 3, к = 5; б) у = 3, к = 3; в) у = 3, к = 2.

2. Запишите условный оператор, в котором значение переменной вычисляется по формуле: а + Ь, если а — нечетное и аЪ, если а — четное.

3. Вычислите значение функции:

х2 + 5 при х > 3, х - 8 при х < 3.

4. Найдите наибольшее из трех данных чисел.

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

6. Вычислите значение функции:

х -12 прих > 0, < 5 при х = 0,

х2 прих < 0.

7. Даны три целых числа, найдите среднее из них. Средним назовем число, которое больше наименьшего из данных чисел, но меньше наибольшего.

8. Напишите фрагмент программы, подсчитывающий сумму только положи­тельных из трех данных чисел.

9. Даны три числа. Напишите фрагмент программы, подсчитывающий количе­ство чисел, равных нулю.

10. После выполнения операторов

а: =0 ;

И а<>0 ТЬеп; а:=2

значение переменной равно двум. Объясните почему.

11. Используя составной оператор, упростите следующий фрагмент программы:

II а>Ъ ТЬеп с:=1;

И а>Ъ ТЬеп с!:=2;

II а<=Ъ ТЬеп с:=3;

II а<=Ъ ТЬеп с!:=4.

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

13. Если целое число М делится нацело на целое число ТУ, то вывести на экран частное от деления, в противном случае — сообщение «М на ТУ нацело не делится».

14. Найдите количество положительных (отрицательных) чисел среди четырех целых чисел А, В, С и В.

15. Чему равны значения переменных аиЬ после выполнения последовательно­сти действий:

а) а: = 15 (16 Мое! 7); Ъ:= 34 Мое! а*5 - 29 Мое! 5*2;

б) а: = 4*5 3 Мое! 2; Ъ:= 4*5 (3 Мое! 2);

в) а: = а*Ь; Ь:= Ь*Ь.

16. Составьте программу, которая определяла бы вид треугольника (если дан­ные отрезки позволяют его построить).

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

18. Составьте программу вычисления выражения:

а) тах(х +у хуг) + 3;

б) тт(х2 + у2, у2+12) ~ 4,

если х, у, г введены с клавиатуры.

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

Упражнение № 3. Целый тип данных. Цикл с параметром

Пример 4. Составить программу вычисления значения выражения у =((...(202- 192)2— 182)2—... - I2)2.

Решение. В данном случае целесообразно организовать цикл с параметром, из­меняющимся от 20 до 1, то есть шаг изменения параметра равен —1.

Обозначим: у — очередное значение квадрата числа; п — параметр цикла. Учитывая это, составим программу:

Ргодгат Ехатр1е_4; Уаг у, п: 1п1:едег; Ведл-п

у:=здг(20);

Еог п:=19 Богато 1 Бо у:=здг(у-здг(п)); ДОг11:е1п (' Значение выражения равно'); ЭДгл_1:е1п (у) ; Епс1.

Пример 5. Из чисел от 10 до 99 вывести те, сумма цифр которых равна п (0 < п <18). Решение. Обозначим: к — это просматриваемое число, р\ — это первая цифра числа к, р2 — это вторая цифра числа к, з — это сумма цифр данного числа к. Число к будем выписывать только в том случае, когда сумма р\ и р2 будет равна 5.

Ргодгат Ехатр1е_5;

Уаг к, п, р1, р2, з : 1п1:едег;

Ведл-п

ДОг11:е1п ('введите целое число'); КеасИп(п); {вводим целое число}

Еог к:=10 То 99 Бо {для(Еог) к от 10 до(То) 99 делать(Бо)} Вед±п

р1:=к Бл^ 10; {выделяем первую цифру} р2:=к Мое! 10; {выделяем вторую цифру} з:=р1+р2; {находим сумму цифр}

II: 5=п Т1пеп ДОгИ:е1п (к) ; {если сумма равна п, то выводим К}

Епс1;

Кеас11п; Епс1.

Задания для самостоятельной работы

1. Сколько раз будут выполнены операторы из тела циклов в следующих фраг­ментах программ:

а) Еог к: =—1 То 1 Бо ...

б) Еог к:=10 То 20 Бо ...

в) Еог к: =20 То 10 Бо ...

г) к: =5; г:=15;

д) Еог 1: =к+1 То г-1 Бо ...

е) к : =5; г : =15;

ж) Еог л_:=0 То к*г Во ...

з) к: =г;

и) Еог л_:=к То г Во ...

2. Определите значение переменной 8 после выполнения следующих операторов:

з:=0; п:=10;

Еог 1:=2 То п Во з:=з+100 Бл^ л.;

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

I2 = 1

22 = 1 + 3

З2 = 1 + 3 + 5

42 =1 + 3 + 5 + 7

п2 =1+3 + 5 + 7 + 9 + ... + (2/1-1)

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

5. Составьте программу вычисления суммы кубов чисел от 25 до 125.

6. Среди двузначных чисел найдите те, сумма квадратов цифр которых делится на 13.

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

8. Квадрат трехзначного числа оканчивается тремя цифрами, которые как раз и составляют это число. Напишите программу поиска таких чисел.

9. Напишите программу поиска четырехзначного числа, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111.

10. Найдите сумму положительных нечетных чисел, меньших 100.

11. Найдите сумму целых положительных чисел из промежутка от А до В, крат­ных 4 (значения переменных А и В вводятся с клавиатуры).

12. Найдите сумму целых положительных чисел, больших 20, меньших 100, крат­ных 3 и заканчивающихся на 2, 4 или 8.

Упражнение № 4. Отладка. Пошаговая детализация

1. Загрузите файл с:\Ехатр1е_5.раз.

2. Откройте окно Ц^Шскез и введите переменные р1, р2, к, 8.

3. Проследите работу программы в пошаговом режиме и составьте следующую таблицу для значений к от 10 до 15:

к />1 р2
       

 

Примечание. Для удобства следует уменьшить размеры окна \Уа1сИ и поместить его в удобное для Вас место экрана.

Пример 6. Дано число п. Каким образом можно построить «перевертыш» данного числа ?

Решение. Обозначим: п — вводимое число, т — дубликат числа п, а — перевер­тыш числа я, / — переменная цикла для создания перевертыша.

Ргодгат Ехатр1е_6; Уаг п, т, а, 1: 1п1:едег ; Вед±п

МгИ:е1п(1 введите целое число, не большее 9999'); КеасИп(п); {вводим целое число} ш:=п; а:=0;

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

Рог л_:=1 То 4 Во {так как число четырехзначное} Вед±п

а:=а*10+т Мой 10; т:=т ^^V 10; Епс1;

II а=п ТЬеп У1гИе1п ( ' ДА! ' ) Е1зе ДОг1"Ье1п ( 1 НЕТ !!!'); {если перевертыш равен данному числу, то выводим «ДА», иначе — «НЕТ»} КеасИп; Епс1.

Трассировка примера

Рассмотрим выполнение этой программы в пошаговом режиме для числа 3994. Так как значение переменной а не равно значению переменной п, то на экране появится слово «НЕТ!!!».

/ п т а — это перевертыш
0-10 + 3994 тоё 10=0+4 = 4
4 10 + 399 тоё 10 = 40 +9 = 49
49 -10 + 39 тоё 10 = 490 + 9 = 499
499-10 + 3 тоё 0 = 4990 + 3 = 4993

 

Пример 7. Даны натуральные числа п, к (п, к<9999). Из чисел от п до к выбрать те, запись которых содержит ровно три одинаковые цифры. Например, числа 0006, 0060, 6766, 5444, содержат ровно три одинаковые цифры.

Решение. Если данное число содержит ровно три одинаковых цифры, то только одна из цифр отличается от остальных, т.е. возможны четыре случая.

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

Фрагмент решения

   
X X X   — первое условие
X X   X — второе условие
X   X X — третье условие
  X X X — четвертое условие

 

Ведд.п {Ехашр1е_7};

ЭДгИ:е1п ('Введите два числа, не больших 9999'); Кеас!1п(п, к); Еог 1:=п То к Бо Вед1п

ш: =±;

{выделение цифр: а1 — первая, а2 — вторая,аЗ — третья, а4 — четвертая}

а4:=ш Мое! 10; ш:=ш □IV 10; аЗ:=ш Мое! 10; ш:=ш 10;

а2:=ш Мое! 10; а1:=ш 10;

{проверка условий}

11 ( (а1=а2) Апс! (а1=аЗ) Апс! (а1<>а4)) Ог {первое условие}

((а1=а2) Апс! (а1=а4) Апс! (а1<>аЗ) ) Ог {второе условие} ( (а1=аЗ) Апс! (а1=а4) Апс! (а1<>а2) ) Ог {третье условие} ( (а2=аЗ) Апс! (а2=а4) Апс! (а2<>а1) ) {четвертое условие} ТЪеп ДОг11:е1п (1: 5) ; Епс1; КеасИп; Епс1.

Трассировка примера

Рассмотрим выполнение программы для числа 3733.

п т а\ а2 аЪ а4

 

Для данного числа выполняется третье условие, поэтому на экране появится число 3733.

Задания для самостоятельной работы

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

1. Составьте программу возведения данного натурального числа а в степень п. Исследовать для различных а максимальное значение п.

2. Даны натуральные числа я, Ь. Вычислите произведение аЬ, используя в про­грамме лишь операции «+», «—», «=».

3. Пусть п — натуральное число и пусть п\\ означает 1 • 3 • 5 •... • п для нечетного п и 2-4 ... п для четного п. Для заданного натурального п вычислите п\\ и (-1)л+1- п\\

4. Даны натуральные числа п, аъ а2, ап:

а) определите число членов ак последовательности аи а2, аю имеющих четные порядковые номера и являющихся нечетными числами;

б) получите сумму тех чисел данной последовательности, которые удовлетво­ряют условию | я, | < /2;

в) верно ли, что в последовательности больше отрицательных членов, чем по­ложительных;

г) тт(а24,...) + тах(я,,я3,...).

5. Даны натуральные п, Ь0, Ьь ..., Ьп. Вычислите/(Ь0) + /(Ь,) + ... + /(Ьп), где

х2, если х кратно 3,

х, если х при делении на 3 дает остаток 1, х

в остальных случаях.

6. Дано натуральное число п. Получите все его натуральные делители.

7. Даны натуральные числа т, п. Получите все кратные им числа, меньшие т- п.

8. Среди четырехзначных чисел выбрать те, у которых все четыре цифры раз­личны.

9. Дано четырехзначное число п. Выбросите из записи числа п цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 1509 должно полу­читься 19.

10. Натуральное число из п цифр является числом Армстронга, если сумма его цифр, возведенных в п-ю степень, равна самому числу (например, 153 = I3 + 53 + З3). Получите все числа Армстронга, состоящие из трех и четырех цифр.

11. Дана последовательность из 20 целых чисел. Определите количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей.

Упражнение № 5. Циклы с условиями

Пример 8. Цикл с предусловием. Дано натуральное число п. Подсчитайте количе­ство цифр данного числа.

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

Ргодгат Ехатр1е_8; Уаг т, п: Ъопд1п1;

к: 1п1едег; {счетчик цифр} Вед±п

ЭДг1-Ье1п ( 1 Введите целое число1); {вводим целое число п} Кеас11п (п) ;т: =п; к: =0;

МЫ1е т<>0 Бо {пока число т<>0 делать (Бо) } Вед±п

1пс(к); {или к:=к+1;}

т:=т 10; {«уменьшаем» число на последнюю цифру}

Еп<1;

ЭДг1-Ье1п ( 1 В числе !,п, 1 - 1 , к, 1 цифр !'); {вывод количества цифр} КеасИп; Епс1.

Трассировка программы

Рассмотрим выполнение этой программы в пошаговом режиме для числа 65387.

В результате работы программы на экране появится предложение:

В числе 65387 - 5 цифр !

п т к

 

Пример 9. Дана непустая последовательность натуральных чисел, за которой сле­дует 0. Составить программу поиска в данной непустой последовательности поряд­кового номера наименьшего элемента.

Решение. Обозначим через х, / — очередной член последовательности и его но­мер; шт, к - минимальный член последовательности и его номер. Считывание членов последовательности производится до тех пор, пока не будет введен 0, то есть пока л;<>0. Начальное значение минимума определяется значением первого члена последовательности. Очередное вводимое число требуется сравнивать с те­кущим значением минимума, и если текущее значение шт окажется больше оче­редного члена последовательности, то его надо изменить.

Ргодгат Ехатр1е_9;

Уаг х, л_, тл-П, к: 1п"Ьедег;

Вед±п

ЭДг1"Ье1п ( 1 Введите первый член последовательности1);

КеасНх); к:=1;

Ш1п:=х; л_:=2;

ШнИе х<>0 Во

Вед±п

II х<ш1П ТЬеп Вед±п ш1п:=х; к:=1 Епс1;

1йг±Ье1п ( 1 Введите элемент последовательности1);

Кеас! (х) ;

1пс (1);

Еп<1;

Мг1"Ье1п ( 1 Номер минимального элемента — к) ;

Еп<1.

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

Решение. Обозначим через х, к соответственно цену и количество товара, через р — заданную предельную сумму, через 5 — общую стоимость покупки. Начальное значение общей стоимости покупки (5) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества вы­бранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран надо вывести сообщение о превышении.

Ргодгат Ехатр1е_10;

Уаг х, к, р, з: 1п"Ьедег;

Вед±п

ЭДгл-"Ье1п ( 1 Предельная сумма - '); КеасИп (р) ;

з : = 0; Кереа!:

ЭДгл_1:е1п (' Введите цену товара и его количество'); КеасИп (х, к) ; з:=з+х*к;

ЭДг л."Ье1п ('Стоимость покупки равна ', з) ; 11пШ з>р;

ЭДгИ:е1 п.('Суммарная стоимость покупки превысила предельную сумму'); Епё.

При описании циклов с постусловием необходимо принимать во внимание следующее:

• перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено;

• тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным;

• условие окончания цикла должно быть в результате выполнено.

Пример 11. Написать программу нахождения наибольшего общего делителя (НОД) двух неотрицательных чисел.

Решение. Для решения данной задачи воспользуемся алгоритмом Евклида. Пусть хну одновременно не равные нулю целые неотрицательные числа и пусть х>у, тогда если у = 0, то НОД(х,у) = х, а если у ф 0, то для чисел х, у иг, где г — остаток от деления х на у выполняется равенство НОД(х,у) = НОД(у,г). Ргодгат Ехатр1е_11; Уаг х, у: 1п1:едег; Вед±п

Югл.1:е1п (' Введите два числа');

КеасИп (х,у); {вводим два целых числа }

Кереа!: {выполнять}

II х>у ТЬеп х: =х Мое! у Е1зе у:=у Мое! х; ипЪИ (х=0) Ог (у=0);

{до тех пор, пока одно из чисел не станет равно нулю} Югл.1:е1п ( ' НОД=' , .х+у); {вывод НОД — без условного оператора, так как одно из чисел обязательно равно нулю} КеасИп; Епс!.

Пример 12. Даны натуральные числа х и у, не равные нулю одновременно. Найти (1 = НОД(х,у) и такие целые ц и что (1 = дх + м?у.

Решение. Добавим в алгоритм Евклида переменные /?, г, я, т и п, такие, что т = ра + п = га + где первоначально т = а = х, п = Ь = у. Рассмотрим решение задачи для чисел 48 и 18.

м N Р Я   Результаты
  48 = 48-1 + 18-0 18 = 48 0 + 18 1
48 той 18= 12 -2     т> п 12 = 48 - 1 + 18 (-2)
18 той 12 = 6     -1 т< п 6 = 18- 1 + 12 (—1) = = 48 (—1) + 18 3
12 той 6 = 0 -8     т> п 0 = 181 +6 (-2) = = 48-3+ 18 (-8)
        т =0 с1= п д = гн> =5

 

Итак, 4= НОД(48,18) = 6 и 6 = 48(-1) + 18 3.

Значения переменных р, д, /*, 5 изменяются следующим образом:

• как только значение переменной т уменьшается на к п, значение р умень­шается на кг, ад уменьшается на к-з\

• аналогично, как только значение п уменьшается на к• т, значения перемен­ных г и 5 уменьшаются соответственно на к-р и на к д.

Учитывая все, что сказано выше, составим программу:

Ргодгат Ехатр1е_12;

Уаг х,у: 1п"Ьедег; {исходные данные}

р,д,г,з,т,п: 1п{:едег; {введенные вспомогательные переменные} к: 1п{:едег; {для изменения значений р,д,г,з} с1: 1п{:едег; {значение наибольшего общего делителя} Вед±п

Кеас! (х, у) ;

т:=х; п:=у; р:=1; д:=0; г:=0; з:=1; Кереа-Ь

II т>п ТЬеп Вед±п

к:=т 01V п; т: -т' Мое! п; р:=р-к*г; д:=д-к*з

Епс!

Е1зе

Вед1п к:=п □IV т; п:=п Мой т; г:=г-к*р; з:=з-к*д Епс!; 1^11 (т=0) Ог (п=0) ;

II т=0 ТЬеп Вед±п с!:=п; д:=г; м:=з; Еп<1 Е1зе Вед1п с!:=ш; д:=р; м:=д; Епс!;

(с!,- ' = ',4/ ' *',х, '+ ' *',у) ;

Епс!.

X У   Результаты
   
48 той 18= 12 х>у НОД(48,18) = НОД (12,18)
18 тоё 12 = 6 х<у НОД(12,18) = НОД(12,6)
12 той 6 = 0 х>у НОД(12,6) = НОД(0,6)
х—0 НОД(0,6) =6

 

Пример 13. Вложенные циклы. Даны натуральные числа пик. Составить програм­му вычисления выражения 1к + 2к + ... + пк.

Решение. Для вычисления указанной суммы целесообразно организовать цикл с параметром /, в котором, во-первых, вычислялось бы очередное значение у = 1к и, во-вторых, осуществлялось бы накопление суммы прибавлением полученного слагаемого к сумме всех предшествующих (5 = 5 + у).

Ргодгат Ехатр1е_13;

Уаг п, к, у, з, т: 1п-Ьедег;

Ведл.п

ЭДгл_-Ье1п ( 1 Введите исходные данные п и к1);

КеасИп (п, к) ;

8 : = 0;

ГОГ 11=1 То п Эо

Вед±п

у: =1;

Гог т:=1 То к Бо у:=у*л_; {нахождение степени к числа 1} з:=з+у;

Епс1;

ЭДгл_-1:е1п ( 1 Ответ : ',з);

Епй.

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

Пример 14. Модифицировать предыдущую программу так, чтобы она вычисляла сумму I1 + 22 + ... + пп.

Решение. Данная задача отличается от предыдущей тем, что показатель степени очередного слагаемого совпадает со значением ее основания, следовательно, па­раметры внутреннего цикла (цикла, в котором вычисляется очередное слагаемое) совпадают с параметрами внешнего цикла.

Ргодгат Ехатр1е_14;

Уаг п, у, 1, з, т: 1п"Ьедег;

Вед±п

ЭДг1-Ье1п ( 1 Введите начальное значение п');

КеасИп (п) ;

з :=0;

ГОГ 11=1 То п Во

Вед±п у:=1;

Гог ш:=1 То 1 Оо у:=у*л_; {нахождение степени к числа л.} з:=з+у;

Епй;

ЭДгл_-Ье1п ( 1 Ответ : !,з);

Епс1.

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

Пример 15. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10руб., за корову — 5руб., за теленка — полтинник (0,5руб.), если на 100 руб. надо купить 100 голов скота.

Решение. Обозначим Ь — число быков; к — число коров; 1 — число телят. После этого можно записать два уравнения: 10Ь + 5к + 0,5/ = 100 и Ь + к + I = 100. Преобразуем их: 20Ь+ Ш + г = 200 и Ь + к + { = 100.

На 100 рублей можно купить:

• не более 10 быков, т.е. 0 < Ь < 10;

• не более 20 коров, т.е. 0 < к < 20;

• не более 200 телят, т.е. 0 < / < 200.

Ргодгат Ехатр1е__15; Уаг Ъ, к, 1:: 1п1:едег; Ведл.п

Рог Ъ:=0 То 10 Бо

Рог к:=0 То 20 Бо

Рог "Ь: =0 То 200 Бо

II (2 0*Ъ+10*к+"Ь=2 00) Апс! (Ь+кн-Ь=100) ТЬеп ЭДгИ:е1п ( 1 быков 1 , Ъ, ' коров 1 , к, 1 телят 1 ,1:) ;

Епс1.

Пример 16. Сколько раз будет проверяться условие в данной программе? Решение. Значение переменной Ъ изменяется 11 раз (от 0 до 10), для каждого ее значения переменная к изменяется 21 раз, а для каждого значения перемен­ной & переменная / изменяется 201 раз. Таким образом, условие будет проверять­ся 11- 21- 201 раз. Но если известно число быков и коров, то число телят можно вычислить по формуле / = 100 — (Ь + к) и цикл по переменной / исключается. Ргодгат Ехатр1е_16; Уаг Ъ, к, 1:: 1п1:едег; Ведл.п

Рог Ъ:=0 То 10 Бо Рог к:=0 То 20 Бо Ведл.п

"Ь : =100— (Ъ+к) ;

II (2 0'*Ъ+10*к+"Ь=200) ТЬеп

ЭДгИ:е1п ( 1 быков !,Ъ, ' коров 1 , к, 1 телят ' ,1:); Епс1; Епс1.

При этом решении условие проверяется 11-21 раз.

Задания для самостоятельной работы

1. Дана последовательность операторов:

а:=1; Ь:=1;

мЪИе а+Ъ<8 <Зо Ведл.п а:=а+1; Ъ:=Ъ+2 Епс1; з:=а+Ъ;

Сколько раз будет повторен цикл и какими будут значения переменных а, 6, и 5 после завершения этой последовательности операторов?

2. Какими будут значения переменных а и Ь после выполнения операторов:

а:=1; Ъ:=1;

МлИе а<=3 Бо а:=а+1; Ь:=Ь+1;

3. Определите значение переменной 5 после выполнения следующих операторов:

а) з:=0; 1: =0; МлИе К5 Бо 1пс(л_); з:=з+100 Бхлт- л_;

б) з: =0; 1:=1; МлИе л_>1 Бо Ведл.п з:=з + 100 Бл-лт- 1; с!ес (±) Еп<1;

4. Дана последовательность операторов, вычисляющих факториал /числа п:

к:=1; ^:=0; ШлИе к<п Бо к:=к+1,

которая содержит пять ошибок. Найдите эти ошибки.

5. Найдите и исправьте ошибки в следующем фрагменте программы, опреде­ляющей для заданного натурального числа п число, записанное цифрами числа п в обратном порядке:

р:=п;

№Ы1е р>=0 Бо

Вед±п

а : =а+р Мое! 10; р:=р Эл^ 10

Епс1;

6. Найдите сумму цифр числа.

7. Найдите первую цифру числа.

8. Припишите по 1 в начало и в конец записи числа п. Например, было п = 3456, стало п = 134561.

9. Поменяйте местами первую и последнюю цифры числа.

10. Поменяйте порядок цифр числа на обратный. Например, было 12345, стало 54321.

11. Найдите количество четных цифр целого положительного числа.

12. Найдите самую большую цифру целого числа.

13. Найдите сумму цифр целого числа, больших 5.

14. Сколько раз данная цифра встречается в целом числе?

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

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

17. Определите значение переменной я после выполнения следующих операторов:

з:=0; 1:=1;

КереаЪ з:=з + 5 Бл^ л_; л_:=1-1; Ш^Ы л_<=1;

18. Произведение ТУ первых нечетных чисел равно р. Сколько сомножителей взято? х

19. Числа Фибоначчи (/„) определяются формулами:/0=/х = \\/п=/п-х+ /п-2 при п = 2, 3, ... Составьте программу:

а) определения / — 40-е число Фибоначчи;

б) поиска/ — первого числа Фибоначчи, большего т (т> 1);

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

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

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

22. Покажите, что любой оператор цикла с постусловием можно записать с* помощью условного оператора и оператора цикла с предусловием.

23. Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислите сумму положительных элементов последовательности, порядковые но­мера которых нечетны.

24. Найдите НОД трех чисел. Примечание. НОД (а,Ь,с) = НОД(НОД(а,й),с).

25. Проверьте, являются ли два данных числа взаимно простыми. Два числа называются взаимно простыми, если их наибольший общий делитель равен 1.

26. Найдите наименьшее общее кратное (НОК) чисел п и т, если

тг/ ч пт

27. Даны натуральные взаимно простые числа п, р. Найдите т такое, что, во- первых, т<р, во-вторых, произведение чисел т п при делении нар дает остаток 1. Примечание. Воспользуйтесь алгоритмом, описанным в примере 2.

28. От прямоугольника 324 х 141 отрезают квадраты со сторонами 141, пока это возможно. Затем вновь отрезают квадраты со стороной, равной 324 —2 х 141 = 42 и т.д. На какие квадраты и на сколько квадратов будет разрезан прямоугольник?

29. Напишите вариант алгоритма Евклида, основанный на соотношениях НОД(2я, 2Ъ) = 2НОД(я, Ъ)\

НОД (2 а, Ь) = НОД (а, Ь), при нечетном Ь, не включающий деления с остат­ком, использующий лишь деление на 2 и проверку четности.

30. Даны натуральные числа тип. Найдите такие натуральные /? и не имею-

р _ т

щие общих делителей, что ~ - ~.

31. Что будет выведено на экране монитора после выполнения следующего фраг­мента программы:

а:=1; Ь:=1;

Еог л_:=0 То п Во

Ведз-п

Рог ]:=1 То Ь Бо ГОгл-Ъе (' * ' )

с:=а+Ъ; а:=Ъ; Ъ:=с;

Еп<1;

Если п = 6, решение какой задачи выражает этот фрагмент программы?

32. Что будет выведено на экране монитора после выполнения следующего фраг­мента программы:

Ъ: =0;

ШНе а<>0 Во

Вед±п

Ь : =Ъ*10+а Мое! 10;

а:=а ^^V 10/

Епс1;

ДОгИ^е (Ь) ;

Если а = 13305, решение какой задачи выражает этот фрагмент программы?

33. Исходное данное — натуральное число выражающее площадь. Напишите программу для нахождения всех таких прямоугольников, площадь которых равна # и стороны выражены натуральными числами.

34. Составьте программу получения всех совершенных чисел, меньших заданно­го числа п. Число называется совершенным, если равно сумме всех своих положи­тельных делителей, кроме самого этого числа. Например, 28 — совершенно, так как 28 = 1 + 2 + 4 + 7 + 14.

35. Из истории. Грекам были известны первые четыре совершенных числа: 6, 28, 496, 8 1 28. Эти числа высоко ценились. Даже в XII веке церковь утверждала, что для спасения души необходимо найти пятое совершенное число. Это число было найдено

только в XV веке. До сих пор совершенные числа полностью не исследованы — не известно, имеется ли конечное число совершенных чисел или их число бесконеч­но, кроме того, не известно ни одного нечетного совершенного числа, но и не доказано, что таких чисел нет.

36. Дано натуральное число п. Можно его представить в виде суммы трех квадра­тов натуральных чисел? Если можно, то:

• укажите тройку х, у, I таких натуральных чисел, что х2 + у2 + I2 = п\

• укажите все тройки х, у, I таких натуральных чисел, что х2 + у2 + I2 = п.

37. Найдите натуральное число от 1 до 10000 с максимальной суммой делителей.

38. Даны натуральные числа а, Ь (а < Ь). Получите все простые числаудовлет­воряющие неравенствам а < р < Ь.

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

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

41. В данном натуральном числе переставьте цифры таким образом, чтобы обра­зовалось наименьшее число, записанное этими же цифрами.

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

12345678910..., в которой выписаны подряд все натуральные числа;

14916253649..., в которой выписаны подряд квадраты всех натуральных чисел;

1123581321..., в которой выписаны подряд все числа Фибоначчи.

43. Составьте программу возведения заданного числа в третью степень, исполь­зуя следующую закономерность:

I3 = 1

23= 3 + 5 З3= 7 + 9 + И

43 = 13 + 15 + 17 + 19

53= 21 + 23 + 25 + 27 + 29

44. Составьте программу для нахождения всех натуральных решений уравнения п2+ т2= к2 в интервале (1,10).

Примечание. Решения, которые получаются перестановкой пит, считать со­впадающими.

45. Найдите все трехзначные числа, удовлетворяющие каждому из условий:

• любые две цифры различны;

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

46. Стороны прямоугольника заданы натуральными числами Ми N. Составьте программу, которая будет находить, на сколько квадратов, стороны которых вы­ражены натуральными числами, можно разрезать данный прямоугольник, если от него каждый раз отрезается квадрат максимально большой площади.

47. Дано натуральное число п < 2. Составьте программу разложения этого числа на простые множители: простой множитель р должен быть выведен к раз, где к — натуральное число, такое, что п делится на рк и не делится на рк+х\ каждый про­стой множитель должен быть выведен ровно один раз.

48. Даны натуральные числа Nи р. Получите все натуральные числа, меньшие N и взаимно простые с р.

49. Даны целые числа р и Получите все делители числа взаимно простые с р.

50. Сумма квадратов длин катетов а и Ь прямоугольного треугольника равна квадрату длины гипотенузы с: а2+ Ь2= с2. Тройка натуральных чисел, удовлетворя­ющих этому равенству, называется пифагоровыми числами. Составьте программу нахождения основных троек пифагоровых чисел, используя следующие формулы:

и2 - V2 и2 + V2

а = и*у; Ъ --------------- ; с =

2 9 2 9 где и и v — взаимно простые нечетные натуральные числа и и > v.

51. Найдите наименьшее натуральное число ТУ, пред ставимое двумя различны­ми способами в виде суммы кубов двух натуральных чисел х3 и у3 (х > у).

52. Даны натуральные числа т, пъ пъ ..., пт (т>2). Вычислите НОД(ль пъ ..., пт), воспользовавшись соотношением НОД(ль пъ ..., пт) = НОД(НОД(а21, пъ ..., пт-{), пт) и алгоритмом Евклида.

53. Найдите все простые несократимые дроби, заключенные между 0 и 1, знаме­натели которых не превышают 7 (дробь задается двумя натуральными числами — числителем и знаменателем).







Дата добавления: 2014-11-10; просмотров: 1504. Нарушение авторских прав


Рекомендуемые страницы:


Studopedia.info - Студопедия - 2014-2019 год . (0.068 сек.) русская версия | украинская версия