Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Структурные операторы. Условный оператор.




Цель работы. Знакомство с работой опeрaтора if...then…, оператора if...then…else… и вложенных операторов if...then…else…

 

Краткая теория.

 

 

Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Простые условия записываются в виде неравенств или равенств (например, if a>b then writeln (‘Число а – большее из двух’) else writeln (‘Число b – большее из двух’)). Сложные условия составляют из простых с помощью логических операций NOT, AND, OR (например,, if (a>b) and (a<>b) then writeln (‘Число а – большее из двух’) else writeln (‘Число b – большее из двух’)). Логическое выражение принимает одно из двух возможных значений – TRUE (истина) или FALSE (ложь). Если условие истинно, то выполняется <оператор1>, в противном случае - <оператор2>. Если в качестве оператора должна выполниться серия операторов, то они объединяются в операторные скобки begin-end.

 

Ветвь ELSE может отсутствовать, если в случае невыполнения условия ничего делать не надо (if C=0 then writeln (‘ температура замерзания воды’)). Разбор оператора можно выполнить на следующем примере.

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

Обозначим: х – число, вводимое с клавиатуры пользователем. Принадлежность числа х интервалу (0,5) определяется следующей системой неравенств:

 

0 5

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

 

 

Program Primer2;

Var x: integer;

Begin

Writeln (‘Введите число x’);

Readln (x); {вводим целое число}

If (x>0) and (x<5) then writeln (x, ‘принадлежит интервалу’)

Else writeln (x, ‘не принадлежит интервалу’);

End.

 

 

Часто приходится выбирать путь решения задачи не из двух, а из нескольких возможных. Это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов Then и Else записывается новый условный оператор. Если элементами вложенных условных операторов служат неполные условные операторы, то могут возникать неясности, связанные с установлением границ условных операторов. В таких случаях служебное слово else относится к ближайшему if.

Пример. Даны целые числа а, b, c. Если a≤b≤c, то все числа заменить их квадратами, если a>b>c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа (а=а2, b=b2, c=c2 - если a≤b≤c; а=с, b=с - если a>b>c; а= -а, b= -b, с= -с – в остальных случаях).

 

 

Program Primer3;

Var a,b,c: integer;

Begin

Writeln (‘Введите числа a,b,c’);

Readln (a,b,c);

If (a<=b) and (b<=c) then

begin

a:=sqr(a); b:=sqr(b); c:=sqr(c)

end

Else if (a>b) and (b>c) then

begin

a:=c; b:=c

end

else

begin

a:=-a; b:=-b; c:=-c

end;

Writeln (a:3,b:3,c:3);

Readln;

End.

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

1. Запишите программу в которой значение переменной вычисляется по формуле: A+B, если А – нечетное и A*B, если А – четное.

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

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

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

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

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

7. Даны три числа. Написать программу, подсчитывающую количество чисел, равных нулю.

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

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

10. Найти количество положительных чисел среди четырех целых чисел a,b,c,d.

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

12. Составить программу, в которой если число является четным, то вывести «ДА», иначе вывести «НЕТ».

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

14. Даны действительные числа a, b, c. Проверить, выполняются ли неравенства a<b<c.

15. Даны действительные числа a, b, c. Удвоить эти числа, если a≥b≥c и заменить их абсолютными значениями, если это не так.

16. Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так.

17. Даны три числа, выбрать из них те, которые принадлежат интервалу (1,3).

18. Даны действительные числа х, у (х≠у). Меньшее из этих двух чисел заменить их полусуммой, а большее их удвоенным произведением.

19. Если сумма трех различных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае заменить меньшее из х и у полусуммой двух оставшихся значений.

20. Даны действительные числа a,b,c,d. Если a≤b≤c≤d, то каждое заменить наибольшим из них; если a>b>c>d, то числа оставить без изменения; в противном случае все числа заменяются их квадратами.

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

22. Найти количество отрицательных чисел среди четырех целых чисел a,b,c,d.

23. опредедите попадает ли точка M(X,Y) в круг с центром O(Xc,Yc) и радиусом R Если точка M(X,Y) лежит в круге, включая границу, то вывести 1, иначе 0.

24. В декартовой системе координат на плоскости заданы координаты вершин треугольника и ещё одной точки. Определить, принадлежит ли эта точка треугольнику.

25. Два отрезка на плоскости заданы целочисленными координатами своих концов в декартовой системе координат. Требуется определить, существует ли у них общая точка.

26. Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара совпадающих».
Формат входных данных:
ввести три целых числа A, В и С
Формат выходных данных:
вывести слово «TRUE» если приведенное высказывание для предложенных исходных данных является истинным или «FALSE» в противном случае
Ограничения (гарантируются - проверять не нужно)
-100<=A,B,С<=100

 

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

Оператор варианта

Цель работы. Знакомство с работой оператора варианта (оператора выбора) case…of…end.

 

Краткая теория. Для ситуаций, где имеется несколько (три и более) альтернатив, больше подходит оператор варианта, предназначенный для замены конструкций из вложенных операторов If…then. Общий вид оператора выглядит следующим образом:

 

 

Рассмотрим элементы этой конструкции. Во-первых, это зарезервированные слова: case, of, else и end. Между словами case и of находится выражение, принимающее значение, которое, возможно, имеется в одном из списков значений, находящихся слева от двоеточий. Данное выражение называется селектором оператора case. Выполнение оператора выбора начинается с вычисления этого выражения. Если результат вычисления равен одной из перечисленных ниже констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. Если значение выражения не совпадает ни с одной константой, то выполняется оператор стоящий после else (если эта ветвь присутствует), либо выполняется следующий за case оператор.

Примечание.

1. В списках значений оператора case допустимыми являются типы переменных, называемые скалярными, включая целые и исключая вещественные типы.

2. Тип константы должен совпадать с типом выражения.

3. Ветвь else заключена в квадратные скобки, т.к. эта часть оператора выбора необязательна.

4. В этой конструкции перед else стоит точка с запятой.

5. В качестве оператора может быть и составной оператор.

Пример. Необходимо преобразовать целое число N в зависимости от величины остатка от его деления на 17 следующим образом:

если N mod 17 =0, то N:=0;

если N mod 17 =1 или 6, то N:=-N;

если N mod 17 =2,3 или 5, то N:=2N;

если N mod 17 =4, то N:=3N;

во всех прочих случаях N:=5N.

 

 

Program Primer4;

var n: integer;

begin

writeln (‘Введите целое число’)’

readln (n);

case n mod 17 of

0: n:=0;

1,6: n:=-n;

2,3,5: n:=2*n;

4: n:=3*n;

else n:=5*n;

end;

writeln (‘В результате преобразований n=’,n:3);

readln;

end.

 

В данном примере селектором является выражение n mod 17. Кроме этого, имеются 4 списка значений и ветвь else. Константы в этом случае перечисляются через запятую, но допускается использование диапазона значений (например, 3..6).

 

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

1. Составить программу, определяющую к какой группе принадлежит введенный символ (английские буквы, русские буквы, цифры, спец. символы).

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

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

4. Дано неотрицательное число k, не превышающее 10 000. Напечатать фразу «прилетело k ворон», учитывая изменение окончания.

5. Составить программу, определяющую принадлежит введенный символ английскому алфавиту, и если принадлежит, то гласной или согласной буквой он является.

6. Написать программу, которая по заданному времени определяет время суток. Программа должна проверять корректность введенной цифры.

7. Вычислить значение функции у= , где х - принадлежит интервалу (-100,100).

8. Даны целые числа х, у. Если сумма х и у отрицательна, то каждое значение заменить его модулем; если неотрицательна, то оба значения увеличить на 5; если сумма принадлежит отрезку [5, 20], то оба значения уменьшить в 10 раз; в остальных случаях х и у оставить без изменения.

9. Дано натуральное число n, не превышающее 100, которое определяет возраст человека (в годах). Дать для этого числа наименования «год», «года», «лет».

10. Используя следующие денежные единицы – 1 рубль, 2 рубля, 5 рублей, 10 рублей разменять некоторую денежную единицу монетами одного наименования. Если это невозможно сделать, то написать «не могу разменять вашу купюру».

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

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

13. Дано положительное число х, обозначающее количество денег. Записать фразу «я сегодня могу потратить х рублей», учитывая окончания.

14. Определить успеваемость ученика младших классов по 6 основным предметам (двоечник, троечник, хорошист, отличник).

15. Даны целые числа a,b,c,d. Если их произведение равно цифре большей 100, то каждое число уменьшить в 10 раз; если произведение меньше 10, то числа оставить без изменения; в противном случае все числа заменяются их квадратами.

16. Дана последовательность из 5 символов. Подсчитать сколько раз в ней встречаются знаки арифметических операций (+, -, *, /).

17. Дана последовательность из 5 символов. Преобразовать ее, заменив в ней: все восклицательные знаки вопросительными, все двоеточия точками; все запятые точками с запятой, в остальных случаях заменить символы на звездочки.

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

19. Вычислить значение, если

20. Вычислить значение, если

21. Вычислить значение, если

23-24. Для функций, представленных на графиках вычислить у(х).

25. Сгенерировать работу простого калькулятора.

Исходные данные: символ операции С (+, -, *, /, ^ - степень);

X-первое число; Y-второе число

Вывести на экран результат с точностью до двух знаков после точки. На неправильный ввод данных или неправильное деление должно быть предусмотрено соответствующее сообщение "Error".

26. Даны натуральные числа, обозначающие число, месяц и год. Используя «вечный календарь» определить день недели, на который падает указанная дата.

 

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

Цикл с параметром.

Цель работы. Ознакомится с работой оператора цикла for…to…do… и for…downto…do…. Установить, когда целесообразно применение данного оператора.

 

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

Рассмотрим, как выполняется оператор цикла с параметром вида

For <параметр>:= A to B do <тело цикла>.

Сначала вычисляются значения выражений А и В. Если А≤В, то <параметр> последовательно принимает значения, равные А, А+1,…, В-1,В и для каждого из этих значений выполняется <тело цикла>. Если А>В, то <тело цикла> не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится.

Оператор цикла с параметром For < параметр>:= A downto B do < тело цикла > выполняется аналогичным образом, но значение <параметра> изменяется с шагом, равным -1.

Если <тело цикла> состоит из нескольких операторов, то операторы тела цикла заключаются в операторные скобки begin-end.

Примеры.

 

1. Из чисел от 10 до 99 вывести те, сумма цифр которых равна n.

Обозначим: k – просматриваемое число;

р1 – первая цифра числа k;

р2 – вторая цифра числа k;

n – сумма цифр данного числа k.

Число k будем выписывать только в том случае, когда сумма р1 и р2 будет равна s; 0<n≤18.

 

program Primer5;

var k,n,p1,p2,s: integer;

begin

writeln (‘введите целое число’);

readln (n);

for k:=10 to 99 do {перебор всех двузначных чисел}

begin

p1:=k div 10; {выделяем первую цифру}

p2:=k mod 10; {выделяем вторую цифру}

s:=p1+p2: {находим сумму цифр}

if s=n then writeln (k); {если сумма равна n, то выводим k}

end;

readln;

end.

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

y=((…(202-192)-182)2-…-12)2.

Обозначим: у – очередное значение квадрата числа;

n – параметр цикла.

 

program Primer6;

var y,n: integer;

begin

y:=sqr(20);

for n:=19 downto 1 do y:=sqr(y-sqr(n));

writeln (‘Значение выражения равно’);

writeln (y);

end.

 

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

  1. Найти все двузначные числа, в которых есть цифра N или само число делится на N.
  2. Определить количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу N.
  3. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13 (ответ 23,32).
  4. Написать программу поиска двузначных чисел, таких, что если к сумме цифр этого числа прибавить квадрат этой суммы, то получится это число.
  5. Квадрат трехзначного числа оканчивается тремя цифрами, которые как раз и составляют это число. Написать программу поиска таких чисел.
  6. Найти сумму положительных чисел из промежутка от А до В, кратных 4 (значения переменных А и В вводятся с клавиатуры).
  7. Найти сумму целых положительных чисел, больших 20, меньших 100, кратных 3 и заканчивающихся на 2, 4 или 8.
  8. В трехзначном числе зачеркнули первую цифру слева, когда полученное двузначное число умножили на 7, то получили данное число. Найти это число (ответ 350).
  9. Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найти все такие числа.
  10. Дано натуральное число n≤9999. Определить, является ли оно палиндромом («перевертышем»), с учетом четырех цифр. Например, палиндромами являются числа 2222, 6116, 0440.
  11. Даны натуральные числа n, k≤9999. Из чисел от n до k выбрать те, запись которых содержит ровно три одинаковые цифры. Например, числа 6766, 5444, 0006, 0060 содержат ровно три одинаковые цифры.
  12. Среди четырехзначных чисел выбрать те, у которых все четыре цифры различны.
  13. Дано четырехзначное число n. Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 1509 должно получиться 19.
  14. Найти сумму положительных четных чисел, меньших 200.
  15. Найти все трехзначные числа, такие, что сумма цифр равна А, а само число делится на В (А и В вводятся с клавиатуры).
  16. Найти все трехзначные числа, которые при увеличении на 1 делятся на 2, при увеличении на 2 делятся на 3, при увеличении на 3 делятся на 4, при увеличении на 4 делятся на 5.
  17. Найти все симметричные натуральные числа из промежутка от А до В.
  18. Найти все четырехзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27.
  19. Найти все трехзначные числа, которые при делении на 2 дают остаток 1, при делении на 3 – остаток 2, при делении на 4 – остаток 3, а само число делится на 5.
  20. Найти все четырехзначные числа, в которых есть две одинаковые цифры.
  21. Найти все двузначные числа, которые при умножении на 2 заканчиваются на 8, а при умножении на 3 – на 4.
  22. Найти сумму всех чисел из промежутка от А до В кратных 13 и 5.
  23. Вывести все простые числа от M до N включительно.
  24. Имеется лента билетов с восьмизначными номерами. Первый билет имеет номер M, последний – N. Величины M и N отвечают следующему соотношению: 10000000 ≤ M < N ≤ 99999999. Необходимо определить количество "счастливых" билетов в ленте. Билет считается "счастливым", если сумма первых четырех цифр равна сумме последних четырех цифр.
  25. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число.
  26. Дано трехзначное число. Проверить истинность высказывания: «Цифры данного числа образуют возрастающую последовательность».
    Формат входных данных:
    ввести одно трехзначное число A
    Формат выходных данных:
    вывести слово «TRUE» если приведенное высказывание для предложенных исходных данных является истинным или «FALSE» в противном случае
    Ограничения (гарантируются - проверять не нужно)
    100<=A<=999

 

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

Циклы с условием.

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

Цель работы. Выяснить в каких случаях целесообразно применять операторы цикла с условием. Ознакомиться с работой этого оператора.

 

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

 

 

Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова while. Если оно соблюдается, то выполняется <тело цикла>, а затем вновь проверяется условие и.т.д. Как только на очередном шаге окажется, что условие не соблюдается, то выполнение <тела цикла> прекратится. Если <тело цикла> состоит из нескольких операторов, то они объединяются операторными скобками. В теле цикла обязательно должен быть оператор, влияющий на соблюдение условия, в противном случае произойдет зацикливание.

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

program Primer7;

var m,n: longint; k: integer; {счетчик цифр}

begin

writeln (‘введите целое число’);

readln (n);

m:=n; k:=0;

while m<>0 do

begin

k:=k+1; m:=m div 10: {уменьшаем число на последнюю цифру}

end:

writeln (‘ в числе ’, n,’ - ‘,k,’ цифр’);{вывод количества цифр}

readln;

end.

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

  1. Найти сумму цифр числа.
  2. Найти первую и последнюю цифру числа.
  3. Дано N целых чисел. Требуется выбрать из них три таких числа, произведение которых максимально.
  4. Поменять местами первую и последнюю цифры числа.
  5. Поменять порядок цифр числа на обратный.
  6. Найти количество четных цифр целого положительного числа.
  7. Найти самую большую цифру целого числа.
  8. Найти сумму цифр целого числа, больших 5.
  9. Сколько раз данная цифра встречается в целом числе?
  10. Даны натуральные числа n, m. Получить сумму m последних цифр числа n.
  11. Дано число n. Выяснить, входит ли цифра 3 в запись числа n3.
  12. Приписать по единице в начало и в конец записи числа n.
  13. Произведение n первых нечетных чисел равно р. Сколько сомножителей взято.
  14. Составить программу, проверяющую, является ли заданное натуральное число совершенным, то есть равным сумме своих положительных делителей, кроме самого этого числа.
  15. Используя Алгоритм Евклида найти наибольший общий делитель (НОД) двух неотрицательных чисел.
  16. Найти НОД трех чисел. НОД(а,в,с)=НОД(НОД(а,в),с).
  17. Проверить, являются ли два данных числа взаимно простыми. Два числа называются взаимно простыми, если их наибольший общий делитель равен 1.
  18. Найти наименьшее общее кратное (НОК) чисел n и m, если
  19. Даны натуральные взаимно простые числа n и p. Найти такое m, что, во-первых, m<p, во-вторых, произведение чисел m и n при делении на р дает остаток 1.
  20. Даны натуральные числа m и n. Найти такие натуральные числа p и q, не имеющие общих делителей, что
  21. Даны натуральные числа n и m. Найти все пары дружественных чисел, лежащих в диапазоне от n до m. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого (само число в качестве делителя не рассматривается).
  22. Даны натуральные числа n и m. Получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m.
  23. Составить программу вычисления всех совершенных чисел, меньших заданного числа n. Число называется совершенным, если равно сумме всех своих положительных делителей кроме самого этого числа.
  24. Вычислить значение функции при различных значениях аргумента (табулирование функции) Z=(y-x)*((y-1/x))1+(y-x)2; y=18,64; 1≤x≤10; Δx=1.
  25. Вычислить значение функции при различных значениях аргумента (табулирование функции) y=exsin(x)-x/ln(x+1)+d; d=28; 1≤x≤31; Δx=5.
  26. Вычислить значение функции при различных значениях аргумента (табулирование функции) x=z2+a-tg(z); a=18; 0≤z≤10; Δz=2.

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

Циклы с условием.

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

Цель работы. Выяснить в каких случаях целесообразно применять операторы цикла с условием. Ознакомиться с работой этого оператора.

Краткая теория. Цикл с постусловием имеет следующий вид:

 

 

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

Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова begin-end не нужны.

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

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

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

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

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

 

Используя оператор цикла с постусловием решить задачи из лабораторной работы № 5.

Поделиться:





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



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...