Решение задачи с применением операторов цикла итерационного типа. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Решение задачи с применением операторов цикла итерационного типа.



Цель работы: Научиться использовать оператор цикла с предусловием и постусловием при написании программ.

Теория.

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

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

Цикл с предусловием записывается следующим образом:

WHILE <условие> <тело цикла>; Условие - это выражение логического типа.

В цикле с предусловием проверка условия производится до начала очередной итерации. Оператор тела цикла выполняется до тех пор, пока условие истинно. Если условие ложно, то выполняется оператор, следующий за оператором WHILE. Если в теле цикла имеется несколько операторов, то они объединяются в составной оператор BEGIN... END.

Пример

Вычислить n!.

Текст программы:

Program primer 1;

Var F,K,N: integer;

Begin

Writeln(‘введите число для нахождения факториала');

Readln(N);

F;=l;

К:=0;

WhileK<>Ndo

Begin

K:=K+l;

F:=F*K

End;

Writeln('факториал числа ', N,* = ', F:8);

Readln

End.

Oператор цикла с постусловием

Цикл с постусловием записывается следующим образом: REPEAT

оператор 1;

...

оператор N

UNTIL <условие>;

В цикле с постусловием проверка условия производится после тела цикла, поэтому его называют циклом с постусловием. Оператор цикла выполняется пока условие ложно. Тело цикла независимо от условия выполняется хотя бы один раз. Если условие истинно, то выполняется оператор, следующий за опеатором цикла.

Пример

Вычислить n!.

Текст программы: Program primer2;

Var F,K,N: integer;

Begin

Writeln(‘введите число для нахождения факториала’);

Readln(N);

F:=l;

К:=0;

Repeat

К:=К+1;

F:=F*K;

Until К <>N;

Writern('Факториал числа ', N,' = ', F:8); Readln

End.

 

Задание 1.

Вариант 1. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.

Вариант 2. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность возрастающей.

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

Вариант 4. Вводится последовательность ненулевых чисел, 0-конец последовательности. Подсчитать, сколько в ней отрицательных чисел, и сумму положительных чисел.

 

Вариант 5. Дана последовательность из п чисел. Определить, сохраняет ли она знак

Вариант 6. Вычислить:

а) у=cosx+cosx2+cosx3+...+cosx30;

б) у=1!+2!+3!+...n!(n>1);

в) у- первое из чисел sin x, sin sin x, sin sin sin x,., меньшее по модулю 10.

Вариант 7. Напечатать таблицу значений функций sin х и cos х на отрезке [0,1] с шагом 0.1 в следующем виде (считать, что при печати на каждое вещественное число отводится по 6 позиций строки):

х sin(x)cos(x)

0.0000 0.0000 1.0000

0.1000 0.0998 0.9950

……………………….…….

1.0000 0.8415 0.5403

Вариант 8. Дана непустая последовательность ненулевых целых чисел, за которой следует 0. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 1, -34, 8, 14, -5 знак меняется 3 раза.)

Вариант 9. Дано натуральное число п

- найти количество цифр данного числа, больших а (а вводится с клавиатуры);

Вариант 10. Найти сумму цифр заданного натурального числа п.

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

Вариант 12. Определить, является ли заданное натуральное число п
палиндромом, т.е. таким, десятичная запись которого читается
одинаково слева направо и справа налево.

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

а) Сколько цифр в числе п;

б) Чему равна сумма его цифр?

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

Вариант 14. Даны натуральные числа п, т получить сумму т последних
цифр числа п.

Вариант 15. Дано натуральное число п:

а) Выяснить входит ли цифра 3 в запись числа п2;

б) Поменять порядок цифр числа п на обратный;

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

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

Вариант 16. Получить таблицу температур по Цельсию от 0 до 100
градусов и их эквивалентов по шкале Фаренгейта, используя для

перевода формулу

Вариант 17. Вычислить значения функции у=4х3 -2х 2+5 для значений х, изменяющихся от -3 до 1, с шагом 0.1.

Вариант 18. Дано натуральное число п. Вычислить значения функции

для х= 1; 1.1; 1.2;...;1+0.1 n.

Вариант 19. Вычислить значение функций y=4x5-2x3+5 для значения х, изменяющегося от -5 до 1 с шагом 0,1.

Вариант 20. Определить все делители натурального числа х и их количество.

 

Вариант 21. Пользователь внес в сберкассу вклад t. До какой суммы s возрастет через х лет вклад, если процент годовых начислений р%?

Вариант 22. Какой процент годовых начислений р должен обеспечить банк, чтобы первоначальный вклад s увеличился вдвое за х лет?

Вариант 23. Долгожитель, т.е. человек, проживший более 100 лет, обратил внимание, что если к сумме квадратов цифр его возраста прибавить число его дня рождения, то получится как раз его возраст. Определить, сколько этому человек лет.

Вариант 24. Три приятеля были свидетелями нарушения правил дорожного движения. Номер автомобиля (четырёхзначный) ни один из них не запомнил. Однако один заметил, что этот номер делится на 2, на 7 и на 11; другой заметил, что в записи номера участвуют только две цифры, а третий заметил, что сумма цифр числа равна 30. Каков номер автомашины нарушителя?

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

Вариант 26. Дано целое положительное число п. Найти его простые делители.

Вариант 27. Найти натуральное число от 1 до 10000 с максимальной суммой собственных делителей.

Вариант 28. Дано натуральное число:

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

Вариант 29. Дано натуральное число:

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

в) верно ли, что данная цифра а встречается в числе более двух раз (а вводить с клавиатуры).

Вариант 30. Дано натуральное число:

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

б) верно ли, что в данном числе сумма цифр больше b, а само число делится на b (b вводить с клавиатуры).

Контрольные вопросы

1. До каких пор выполняется цикл с предусловием?

2. Отличия цикла с предусловием от цикла с постусловием?

3. В каком случае после оператора Do ставятся скобки Begin ….. End;?

 

Лабораторная работа № 8

Решение задачи на создание и уничтожение объекта без и с помощью конструкторов и деструкторов.

Цель работы: Создавать простые объекты при помощи конструктора и деструктора.

Теория.

Объектно-ориентированное программирование (ООП) – это методика разработки программ, в основе которой лежит понятие объект. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними.

Прежде чем давать определение понятию объект, рассмотрим, что такое класс.

Класс – это определяемый пользователем тип, который включает в себя данные разных типов и операции над ними.

Объект – это экземпляр какого-либо класса.

Таким образом, класс – это описание, а объект – это то, что создано в соответствии с этим описанием.

До создания объектно-ориентированных языков программирования, данные и операции над этими данными рассматривали как отдельные элементы.

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

Объекты – это тоже хранилища разных типов данных.

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

Эти процедуры и функции называются методами (methods).

Изменять поля объекта можно при помощи свойств (properties) объекта. Каждое свойство объекта в Delphi представляет собой поле и методы, которые позволяют считывать значение поля и задавать его (так называемые методы доступа). Свойства можно изменять в процессе разработки приложения с помощью инспектора объектов.

 

Задание 1.

В заданиях данной подгруппы требуется реализовать процедуры или функции с числовыми параметрами типа integer и real. Входные параметры этих типов обычно описываются как параметры-значения.

Вариант 1. Описать функцию Min2(A,B)1|Max2(A,B)2 вещественного типа, находящую минимальное1|максимальное2 из двух вещественных чисел A и B. С помощью этой функции найти минимальные1|максимальные2 из пар чисел A и B, A и C, A и D, если даны числа A, B, C, D.

Вариант 2. Описать процедуру Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений (A и B — вещественные параметры, являющиеся одновременно входными и выходными). Используя четыре вызова этой процедуры, найти минимальное и максимальное из ·исел A, B, C, D.

Вариант 3. Используя процедуру Minmax из задания Proc2, описать функцию Min3(A,B,C)1|Max3(A,B,C)2 вещественного типа, находящую минимальное1|максимальное2 из трех вещественных чисел A, B и C. С помощью этой функции найти минимальные1|максимальные2 из наборов (A,B,C), (A,B,D), (A,C,D), если даны числа A, B, C, D.

Вариант 4. Используя функцию Min21|Max22 из задания Proc1, описать функцию Min4(A,B,C,D)1|Max4(A,B,C,D)2 вещественного типа, находящую минимальное1|максимальное2 из четырех вещественных чисел A, B, C и D. С помощью этой функции найти минимальные1|максимальные2 из наборов (A,B,C,D), (A,B,C,E), (A,C,D,E), если даны числа A, B, C, D, E.

Вариант 5. Описать функцию Fact(N) целого типа, вычисляющую значение факториала N! = 1·2·...·N (N > 0 — параметр целого типа). С помощью этой фунЄции вычислить факториалы 10 данных чисел.

Вариант 6. Описать функцию FactR(N) вещественного типа, позволяющую вычислять приближенное значение факториала N! = 1·2·...·N для целых N (> 0). С помощью этой функции вычислить факториалы пяти данных чисел.

Вариант 7. Описать функцию Fact2(N) целого типа, вычисляющую значение "двойного факториала": N!! = 1·3·5·...·N, если N — нечетное, N!! = 2·4·6·...·N, если N — четное (N > 0 — параметр целого типа). С помощью этой функции вычислить двойные факториалы десяти данных чисел.

Вариант 8. Описать нерекурсивную функцию Fib(N) целого типа, вычисляющую N-е число Фибоначчи F(N) по формуле: F(1) = F(2) = 1, F(k) = F(k–2) + F(k–1), k = 3, 4,.... С помощью этой функции вычислить 10 чисел Фибоначчи с указанными номерами.

Вариант 9. Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.

Вариант 10. Описать нерекурсивную функцию NOD2(A,B) целого типа, находящую наибольший общий делитель (НОД) двух натуральных чисел A и B, используя алгоритм Евклида: НОД(A,B) = НОД(B mod A,A), если A <> 0; НОД(0,B) = B. С помощью этой функции найти наибольшие общие делители пар A и B, A и C, A и D, если даны числа A, B, C, D.

Вариант 11.. Используя функцию NOD2 из задания Proc10, описать процедуру Frac(a,b,p,q), преобразующую дробь a/b к несократимому виду p/q (все параметры процедуры — целого типа). Знак результирующей дроби p/q приписывается числителю (т.е. q > 0). С помощью этой процедуры найти несократимые дроби, равные a/b + c/d, a/b + e/f, a/b + g/h (числа a, b, c, d, e, f, g, h даны).

Вариант 12. Описать функцию Exp1(x,eps) вещественного типа (параметры x, eps — вещественные, eps > 0), находящую приближенное значение функции exp(x): exp(x) = 1 + x + x2 / 2! + x3 / 3! +... + xn / n! +.... В сумме учитывать все слагаемые, большие eps. С помощью Exp1 найти приближенное значение экспоненты для данного x при шести данных eps.

Вариант 1.3 Описать функцию Sin1(x,eps)1|Cos1(x,eps)2 вещественного типа (параметры x, eps — вещественные, eps > 0), находящую приближенное значение функции sin(x)1|cos(x)2: [sin(x) = x – x3 / 3! + x5 / 5! –... + (–1)n x2n+1 / (2n+1)! +...]1| [cos(x) = 1 – x2 / 2! + x4 / 4! –... + (–1)n x2n / (2n)! +...]2. В сумме учитывать все слагаемые, большие по модулю eps. С помощью Sin11|Cos12 найти приближенное значение синуса1|косинуса2 для данного x при шести данных значениях eps.

Вариант 14. Описать функцию Ln1(x,n)1|Arctg1(x,n)2 вещественного типа (параметры x, eps — вещественные, |x| < 1, eps > 0), находящую приближенное значение функции ln(1+x)1|arctg(x)2: [ln(1+x) = x – x2 / 2 + x3 / 3 –... + (–1)n xn+1 / (n+1) +...]1| [arctg(x) = x – x3 / 3 + x5 / 5 –... + (–1)n x2n+1 / (2n+1) +...]2. В сумме учитывать все слагаемые, большие по модулю eps. С помощью Ln11|Arctg12 найти приближенное значение ln(1+x)1|arctg(x)2 для данного x при шести данных значениях eps.

Вариант 15. Описать функцию PowerA(x,a,eps) вещественного типа (параметры x, a, eps — вещественные, |x| < 1, a > 0, eps > 0), находящую приближенное значение функции (1+x)a: (1+x)a = 1 + a·x + a·(a–1)·x2 / 2! +... + a·(a–1)·...·(a–n+1)·xn / n! +.... В сумме учитывать все слагаемые, большие по модулю eps. С помощью PowerA найти приближенное значение (1+x)a для данных x и a при шести различных значениях eps.

Вариант 16. Описать функцию Otr(Ax,Ay,Bx,By) вещественного типа, находящую длину отрезка AB на плоскости по координатам его концов: |AB| = sqrt((Ax-Bx)2 + (Ay-By)2) (Ax, Ay, Bx, By — вещественные параметры). С помощью этой функции найти длины отрезков AB, AC, AD, если даны координаты точек A, B, C, D.

Вариант 17. Используя функцию Otr из задания Proc16, описать функцию Perim(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую периметр треугольника ABC по координатам его вершин (Ax, Ay, Bx, By, Cx, Cy — вещественные параметры). С помощью этой функции найти периметры треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.

Контрольные вопросы

 

1. Описание объекта?

2. Как использовать методы объекта?

3. Назначение Private и Public?

 

Лабораторная работа № 9.



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 768; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.122.195 (0.035 с.)