Tarma_1179_tal_1171_an_algoritm.pptx
- Количество слайдов: 31
Тармақталған алгоритм
Тармақталган алгоритм Орындаушының әрекеттері кейбір шарттарды тексеру нәтижелерімен белгіленетін болса, ол алгоритм тармақталган болып саналады. Басы Х енгізу жоқ х 0 иә у=х2 Нәтиже у Соңы
Тармақталу операторы көрсетілген шартқа тәуелді құрамына кіретін операторлардың орындалуын немесе орындалмауын қамтамасыз етеді. Тармақталу оператордың екі түрі бар Шартты оператор IF Таңдау операторы CASE
Шартты оператордың жазылу түрлері:
ҚЫСҚА ТҮРІ: (Условный оператор с одной ветвью - неполная развилка) if (шартты өрнек) then (1 оператор ; ) Егер шарт онда 1 оператор Егер шарттың мәні «ақиқат» болса 1 оператор орындалады ал мән «жалған» болса ештеңе орындалмайды, компилятор / интерпретатор келесі жолға көшеді
var a = 4; var b = 5; if (a<b) then trace(a*b); // не шығарады? ? ?
var a = 40; var b = 5; if (a<b) { trace(a*b); } // не шығарады? ? ?
ТОЛЫҚ ТҮРІ (Условный оператор с двумя ветвями - полная развилка) if (шартты өрнек) then (1 оператор ) else (2 оператор; ) Егер шарт онда 1 оператор әйтпесе 2 оператор Егер шарттың мәні «ақиқат» болса, 1 оператор, ал мән «жалған» болса, 2 оператор орындалады.
var a = 5; var b = 4; if (a<b) { trace(a*b); } else { trace(a+b); } // не шығарады? ? ?
var a = 4; var b = 5; if (a<b) { trace(a*b); } else { trace(a+b); } // не шығарады? ? ?
Шартты өрнекті құру үшін салыстыру операторларды қолдануға болады < (меньше), > (больше), ≤ (меньше или равно), ≥ (больше или равно), == (равно), != (не равно).
var a = 4; if (a mod 2==0) { trace(2*a); } else { trace(3+a); } // не шығарады? ? ?
var a = 7; if (a div 1==1) { trace(2*a); } else { trace(3+a); } // не шығарады? ? ?
Бірнеше шартты тексеру үшін логикалық операторларды қолдануға болады && (and) - және || (or) - немесе not - жоқ
var a = 5; var b = 5; if (a<b && typeof (a) == "number" && typeof (b) == "number") { trace(a*b); } else { trace("Error!!!"); } // Выводит: Error!!! (условие a<b не выполнено)
МЫСАЛ var a = 15; var b = 28; if (a<b and a>10) { trace(a*b); } else { trace(a+b); } // не шығарады? ? ?
МЫСАЛ var a = 5; var b = 8; if (a<b and a>10) { trace(a*b); } else { trace(a+b); } // не шығарады? ? ?
МЫСАЛ var a = 15; var b = 28; if (a<b or a>10) { trace(a*b); } else { trace(a+b); } // не шығарады? ? ?
МЫСАЛ var a = 5; var b = 8; if (a<b or a>10) { trace(a*b); } else { trace(a+b); } // не шығарады? ? ?
Таңдау операторы Берілген өрнектің мәніне тәуелді бір немесе бірнеше оператор орындалатын жағдайда таңдау операторы пайдалынады. Тандау операторы алгоритмдік тілдегі таңдау командасына ұқсағанымен бірге, аз өзгешілігі бар
Жазылу түрі Case айнымалы of Мәні 0 : оператор; break; Мәні 1 : оператор; break; . . . . Else : оператор; End;
Задача 1: заменить числовую отметку ее текстовой формой ( «отлично» , «хорошо» , «удовлетворительно» , «неудовлетворительно» ) Program PCASE 1; // Перевод числовой оценки в текстовую var otmetka : 2. . 5; begin write(‘Введите оценку '); readln(otmetka); case otmetka of 2 : writeln('неудовлетворительно'); 3 : writeln('удовлетворительно'); 4 : writeln('хорошо'); 5 : writeln('отлично'); end.
Задача 2: «Чет-нечет» . При вводе цифры получить вывод – четная она или нечетная Program PCASE 2; // Чет-нечет var c : 0. . 9; begin writeln('c='); readln(c); case c of 0, 2, 4, 6, 8 : writeln('Цифра четная'); 1, 3, 5, 7, 9 : writeln('Цифра нечетная'); end.
Задача 3: смоделировать простейший калькулятор, умеющий выполнять 4 основных арифметических операции Program PCASE 3; var x, y : real; rez : char; begin write('x='); readln(x); write('y='); readln(y); write('Введите знак арифметической операции '); readln(rez); case rez of '+' : writeln('x+y=', x+y); '-' : writeln('x-y=', x-y); '*' : writeln('x*y=', x*y); '/' : writeln('x/y=', x/y); else writeln('Некорректная операция') end.
Задача 4: перевести римскую цифру в арабское представление Program p. CASE 4; var i : integer; c : char; begin i: =0; writeln('Введите римскую цифру I, V, X, L, C, D, M'); readln(c); case c of 'I' : i: =1; 'V' : i: =5; 'X' : i: =10; 'L' : i: =50; 'C' : i: =100; 'D' : i: =500; 'M' : i: =1000; end; if i=0 then writeln(c, ' - не римская цифра') else writeln(i) end.
Задача 5: В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла (остаток от деления на 12 равен 4). Program Goroskop; Var Year : Integer; Begin Write('Введите год '); Read. Ln(Year); CASE Year mod 12 of 0 : Write. Ln('Год Обезьяны'); 1 : Write. Ln('Год Петуха'); 2 : Write. Ln('Год Собаки'); 3 : Write. Ln('Год Свиньи'); 4 : Write. Ln('Год Крысы'); 5 : Write. Ln('Год Коровы'); 6 : Write. Ln('Год Тигра'); 7 : Write. Ln('Год Зайца'); 8 : Write. Ln('Год Дракона'); 9 : Write. Ln('Год Змеи'); 10 : Write. Ln('Год Лошади'); 11 : Write. Ln('Год Овцы') end; end.
Задача 6: Составить программу случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях – вы "неудачник". Program future; var N : word; begin writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО'); Randomize; N: =Random(20)+1; {N - случайное от 1 до 20} writeln; write('Вас ожидает '); case N of 1 : writeln('счастье'); 2 : writeln('пятерка'); 3 : writeln('дорога'); 4 : writeln('двойка'); 5 : writeln('болезнь'); 6 : writeln('здоровье'); 7 : writeln('деньги'); 8 : writeln('любовь'); 9 : writeln('встреча'); 10 : writeln('дети') else writeln('неудача') end; end.
Задачи для самостоятельного решения • По номеру дня недели вывести его название • По номеру месяца вывести время года • Напишите программу, которая по введенному числу из промежутка 0. . 24 определяет время суток • В зависимости от того введена ли открытая скобка или закрытая, напечатать "открытая круглая скобка" или "закрытая фигурная скобка". (Учитывать круглые, квадратные, фигурные скобки) • В зависимости от введённого символа L, S, V программа должна вычислять длину окружности; площадь круга; объём цилиндра • Придумайте и решите задачу на использование оператора case
Задача 5: В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла (остаток от деления на 12 равен 4). Program Goroskop; Var Year : Integer; Begin Write('Введите год '); Read. Ln(Year); CASE Year mod 12 of 0 : Write. Ln('Год Обезьяны'); 1 : Write. Ln('Год Петуха'); 2 : Write. Ln('Год Собаки'); 3 : Write. Ln('Год Свиньи'); 4 : Write. Ln('Год Крысы'); 5 : Write. Ln('Год Коровы'); 6 : Write. Ln('Год Тигра'); 7 : Write. Ln('Год Зайца'); 8 : Write. Ln('Год Дракона'); 9 : Write. Ln('Год Змеи'); 10 : Write. Ln('Год Лошади'); 11 : Write. Ln('Год Овцы') end; end.
var day. Num = 5; case 4 : switch (day. Num) { trace("Thursday"); case 0 : break; trace("Sunday"); case 5 : break; trace("Friday"); case 1 : trace("Monday"); break; case 6 : break; trace("Saturday"); case 2 : trace("Tuesday"); break; default : break; trace("Out of range"); case 3 : trace("Wednesday"); break; }
Tarma_1179_tal_1171_an_algoritm.pptx