1 / 29

Алгоритмы – ветвления в Паскаль

Алгоритмы – ветвления в Паскаль. Ветвление в языке программирования Паскаль организуется с помощью условного оператора. Оператор условия позволяет организовать дальнейшее выполнение алгоритма по одному из двух направлений. Эта возможность позволяет реализовать очень сложные алгоритмы.

Download Presentation

Алгоритмы – ветвления в Паскаль

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Алгоритмы – ветвления в Паскаль

  2. Ветвление в языке программирования Паскаль организуется с помощью условного оператора. Оператор условия позволяет организовать дальнейшее выполнение алгоритма по одному из двух направлений. Эта возможность позволяет реализовать очень сложные алгоритмы. В общем виде ветвление (условный оператор) в Паскале записывается следующим образом: If условие thenоператор_1 elseоператор_2; Обратите внимание, что символ «;»перед словом elseне ставится

  3. Условный оператор выполняется следующим образом: eслиусловие истинно, то выполняется оператор_1, стоящий за словом then, если ложно, то – оператор_2, следующий за словом else. В качестве условия выступает логическое выражение, которое строится с помощью операций сравнения: < - меньше > - больше <= - меньше или равно >= - больше или равно = - равно <> - не равно

  4. Пример задачи реализующей условный оператор. Даны два натуральных числа, необходимо написать программу, в которой выводится на экран большее из них. Program Raznoct; Var a,b:Integer; Begin writeln(‘введи числа’); readln(a,b); if a>b then writeln(‘большее равно‘,а);// если a>b то выводим на экран а else writeln(‘большее равно‘,b);// иначе выводим b End.

  5. И по ветке then и по ветке elseдолжен выполнятся единственный оператор. Если по условию задачи необходимо выполнить несколько операторов, тогда следует использовать составной оператор. Это несколько команд ограниченных словами begin … end;Тогда ветвление в общем виде будет выглядеть так: Ifусловиеthenbegin оператор_1; оператор_2; … оператор_n; end elsebegin оператор_1; оператор_2; … оператор_n; end;

  6. Ветвь elseв ветвлении может отсутствует, если в ней нет необходимости. Тогда ветвление называется неполным, и выполняется следующим образом: если условие ложно, то ничего не происходит и выполняется оператор следующий за ветвлением. If условие thenоператор_1;

  7. Пример 2. Задача: Дано натуральное число, определить делится, ли оно на три, без остатка. Для того, чтобы определить делиться ли одно число а на число b, необходимо использовать операцию целочисленного деления mod, которая возвращает остаток от деления. Если результат этой операции будет равен нулю, то aделиться b, если же остаток не будет равен нулю, то не делится. В программе будем использовать следующие переменные а – число, которое дано (вводится с клавиатуры) ost – остаток от деления числа a на 3.

  8. Program Primer_2; Vara,ost:Integer; Begin writeln(‘введи число’); readln(a); ost:= amod 3; if ost= 0 thenwriteln(‘число делится на 3’) elsewriteln(‘числоне делится на 3’); End. Можно также написать операцию деления прямо в условии ветвления: if amod 3 = 0 thenwriteln(‘число делится на 3’) elsewriteln(‘числоне делится на 3’) Тогда использовать переменную ost не надо

  9. Пример 3. Задача: Вводится сумма денег, которую вы имеете (в рублях и копейках) и цена книги (в рублях и копейках). Сможете ли вы купить эту книгу. Для того, чтобы решить эту задачу, необходимо перевести и сумму денег, которую вы имеете и цену книги в копейки, а затем сравнить полученные числа и вывести на экран сообщение о том, сможете ли вы купить книгу или не сможете. В программе будем использовать следующие переменные: sr, sk – сумма денег в рублях и копейках соответственно. cr, ck – цена книги в рублях и копейках. s, c - полученная сумма денег и цена книги в копейках (после перевода)

  10. Program Primer_3; Varsr,sk,cr,ck,s,c:Integer; Begin writeln(‘сумму денег рубли, копейки’); readln(sr,sk); writeln(‘цену книги рубли, копейки’); readln(сr,сk); {переводим сумму денег и цену книги в копейки} s:=sr*100+sk; c:=cr*100+ck; {сравниваем сумму денег и цену книги} if s>=c thenwriteln(‘сможем купить книгу’) elsewriteln(‘не сможем купить книгу’); End.

  11. Пример 4. Задача: Дано натуральное двузначное число, определить и вывести на экран большую цифру этого числа. Для того, чтобы решить эту задачу, необходимо выделить из исходного числа цифру десятков и цифру единиц, а затем их сравнить. Цифры в числе отделяются операциями div и mod. Операция div возвращает целую часть от деления.

  12. Например, нам дано число 3451. Нам надо выделить из числа цифру тысяч цифру сотен, цифру десятков и цифру единиц. Отделяем цифры: тысяч - 3451 div 1000 = 3 сотен - 1) 3451 div 100 = 34или 1) 3451 mod 1000 = 451 2) 34 mod 10 = 4 2) 451div 100 = 4 Два действия можно записать в одну строку: 3451 div 100 mod 10 = 4 или 3451 mod 1000 div 100 = 4 десятков - 3451 div 10 mod 10 = 5 или 3451 mod 100 div 10 = 5 единиц - 3451 mod 10 = 3

  13. В программе будем использовать следующие переменные:a – число (вводится с клавиатуры), d– цифра десятков, e– цифра единиц. Program Primer_4; Vara,d,e:Integer; Begin writeln(‘введи число’); readln(а); d:=a div 10; {выделяем цифру десятков} e:=a mod 10; {выделяем цифру единиц} if d>e thenwriteln(d) elsewriteln(e); End.

  14. Задачи для самостоятельного решения. • Определить, является ли натуральное число a однозначным. • проверить на следующих данных • а = 12, ответ: число не однозначное • а = 3 ответ: число однозначное • 2. Даны два натуральных числа. Вывести на экран то из них, у которого последняя цифра меньше. • проверить на следующих данных • 12, 25 ответ: 12 • 37, 24 ответ: 24

  15. Сложные условия в ветвлении.

  16. В ветвлении можно проверять несколько условий одновременно. Для этого условия связываются между собой логическими операциями. Получается сложное логическое выражение, используемое в качестве условия в ветвлении. Если необходимо проверить одновременное выполнение нескольких условий, для их связи используют логическую операцию AND (И) Например, условие 0<x<5, в ветвлении будет выглядеть так: if (х>0) and (х<5) then …

  17. Если же нужно чтобы выполнялось хотя бы одно из нескольких условий, то для их связи используют операцию OR (ИЛИ) Например, условия y<0 или y>9 будет выглядеть следующим образом: if (y<0) or (y>9) then … Логическая операция NOT (НЕ)меняет значение условия на противоположное. Например, необходимо взять все значения х, кроме 1: if not (x=1) then … При связывании нескольких условий логическими операциями, необходимо заключать простые условия в скобки.

  18. Пример 5. Задача: Прием на работу идет на конкурсной основе. Кандидат будет принят, если стаж его работы не менее 10 лет, а возраст не более 42 лет. Определить будет ли кандидат принят на работу. Для определения будут ли принят кандидат на работу или нет необходимо проверять сразу два условия: первое - стаж должен быть 10 и более лет, второе – возраст должен быть меньше или равен 42 года. Так как для решения задачи необходимо одновременное выполнение двух условий, то для их связи будем использовать логическую операцию AND.

  19. В программе будем использовать следующие переменные: st– стаж, v – возраст кандидата. Program Primer_5; Varst,v:Integer; Begin writeln(‘введи стаж’); readln(st); writeln(‘введи возраст’); readln(v); If (st>=10) and (v<=42) thenwriteln(‘принят’) elsewriteln(‘не принят’); End.

  20. Пример 6. Задача: Задана точка своими координатами (х,y). Проверить лежит ли она в первой четверти. Для определения принадлежности точки первой четверти необходимо проверять сразу два условия: первое - координата х точки должна быть больше 0, второе – координата y тоже должна быть больше 0. Так как для решения задачи необходимо одновременное выполнение двух условий, то для их связи будем использовать логическую операцию AND.

  21. В программе будем использовать следующие переменные: x, y – соответствующие координаты точки. Program Primer_6; Varx,y:Integer; Begin writeln(‘координаты точки’); readln(x,y); If (x>=0) and (y>0) thenwriteln(‘принадлежит’) elsewriteln(‘не принадлежит’); End.

  22. Пример 7. Задача: Задана точка своими координатами (х,y). Проверить лежит ли она на одной из координатных осей. Теперь нам необходимо проверить равна ли одна из координат точки 0. В нашей программе будут два условия x=0, y=0.Так как нам надо проверить выполнение одного из двух условий, то мы их свяжем операцией OR Program Primer_7; Varx,y:Integer; Begin writeln(‘координаты точки’); readln(x,y); If (x=0) or (y=0) thenwriteln(‘точка лежит на оси’) elsewriteln(‘точка не лежит на оси’); End.

  23. Последовательное и вложенное ветвления.

  24. Ветвлений в программе может использоваться несколько. Если ветвления расположены друг за другом то они называются последовательными. If условие thenоператор_1 elseоператор_2; If условие thenоператор_3 elseоператор_4; If условие thenоператор_5 elseоператор_6; Если одно ветвление входит в другое, то такое ветвление называется вложенным. If условие then if условие thenоператор_1 elseоператор_2; else оператор_3;

  25. Пример 8. • Задача: Даны три числа, необходимо определить большее из них. • Решим эту задачу двумя способами: • С помощью последовательного ветвления и сложных условий • С помощью вложенного ветвления. • В программах используются следующие переменные: • а, b, c – заданные числа,max– переменная в которую мы будем сохранять большее из чисел.

  26. 1 способ. Program Primer_8.1; Vara,b,c,max:Integer; Begin writeln(‘введи числа’); readln(а,b,c); if (a>=b) and (a>=c) then max:=a; if (b>=a) and (b>=c) then max:=b; if (c>=a) and (c>=b) then max:=c; writeln(‘большее число равно ’, max); End. В программе были использованы неполные ветвления в которых отсутствует ветка else

  27. 2 способ. Program Primer_8.2; Vara,b,c,max:Integer; Begin writeln(‘введи числа’); readln(а,b,c); if a>=b then if a>=c then max:=a else max:=c else if b>=c then max:=b else max:=c; writeln(‘большее число равно ’, max); End.

  28. Задачи для самостоятельного решения. 3. В школу танцев принимаются юноши и девушки, рост которых не ниже 168 см и не выше 178 см, а вес не более чем рост минус 115. Будет ли принят поступающий? проверить на следующих данных рост - 170, вес - 60 ответ: не принят рост - 168, вес - 53 ответ: принят рост - 180, вес - 64 ответ: не принят 4. Даны числа. Определить делится ли одно число на другое. проверить на следующих данных 12 и 24 ответ: 1ое на 2ое не делится, 2ое на 1ое делится 9 и 6 ответ: 1ое на 2ое не делится, 2ое на 1ое не делится 100 и 100 ответ: 1ое на 2ое делится, 2ое на 1ое делится

  29. 5. В какой координатной четверти лежит точка с координатами (x, y)? проверить на следующих данных (-1, 1) ответ: IV четверть (0,3) ответ: ось У (5, 6) ответ: I четверть (4,0) ответ: ось Х (3, -2) ответ: II четверть (0,0) ответ: начало координат (-4, -2) ответ: III четверть 6. Дано натуральное трехзначное число. Определить и вывести на экран меньшую цифру этого числа. проверить на следующих данных 234 ответ: 2 543 ответ: 3 637 ответ: 3 112 ответ: 1

More Related