Просмотр содержимого документа
«_008_Ветвления_М3_БЛОК1»
Вопросы для повторения:
Какие формы записи оператора if вам известны?
Объясните исполнение оператора if.
Для чего в задаче 3_5 переменная sum первоначально была обнулена?
Задания для самостоятельной работы:
Задано x. Вычислить у
a) б)
Даны два числа. Найти меньшее из них.
Даны три числа. Найти минимальное число.
Задано натуральное число a. Является ли оно чётным? Решите задачу a) используя операцию mod;
b) используя функцию int.
Задано натуральное число a. Является ли оно кратным 7?
Задано натуральное число a. Заканчивается ли оно на 0?
Дано трехзначное число. Кратна ли сумма его цифр шести?
Дано целое число a9. Больше ли цифра десятков цифры единиц?
Дано двузначное число. Является ли сумма его цифр
однозначным числом;
b) двузначным числом.
Задано двухзначное число. Дайте характеристику числа по следующему плану:
Даны два вещественных числа. Уменьшить первое число в пять раз, если оно больше второго по абсолютной величине.
Заданы три числа x, y, z. Вычислить произведение только отрицательных чисел из трех данных.
Заданы четыре целых числа x, y, z, w. Вычислить сумму только четных чисел из четырёх заданных.
Дано три числа x, y, z. Вычислить количество чисел больших 7.
Изучаем “Ветвления в Pascal”
МОДУЛЬ3_Блок № 1
Тема урока:
Условный оператор.
Структура условного оператора.
Цель занятия:
Сформировать понятие об условном операторе;
Научиться использовать полный и неполный условный оператор;
Получить навыки записи простых условий.
Если в зависимости от первоначального условия задачи, должны выполняться различные выражения, то мы будем использовать условный оператор. Условный оператор может быть записан в полной и неполной форме.
полная форма условного оператора
if условие then оператор 1 else оператор 2
неполная форма условного оператора
if условие then оператор
if then else – зарезервированные слова (если, то, иначе)
Рассмотрим несколько примеров:
Даны два числа. Найти большее из них.
program zadacha3_1;
var max,x,y:real;
Begin
writeln('Введите число x '); readln(x);
writeln(' Введите число y '); readln(y);
if xy then max:=x else max:=y;
writeln('большее из двух = ',max);
End.
Даны три числа. Найти максимальное.
program zadacha3_2;
var max,x,y,z:real;
Begin
riteln(' Введите три числа ');
readln(x,y,z);
if xy then max:=x else max:=y;
if zmax then max:=z;
writeln('большее из трёх =',max);
End.
Задано число a. Кратно ли оно 3.
program zadacha3_3;
var а:longint;
Begin
writeln(' Введите число');
readln(а);
if a mod 3 =0 then writeln(a,' кратно 3’)
else writeln(a,' не кратно 3’);
End.
Вместо условия a mod 3=0 напишите условие int(a/3)=a/3. Придумайте свои условия и проверьте их правильность.
Дано число. Дать характеристику числа:
program zadacha3_4;
var a:real;
k,m,p:string;
Begin
writeln('Введите число');
readln(a);
if a
if a=int(a) then m:=' целое' else m:='не целое';
if a/2=int(a/2) then p:=' чётное' else p:=' нечётное ';
writeln('число ',a,' ; ',k,' ; ',m,' ; ',p);
End.
Дано три числа x, y, z. Вычислить сумму только положительных чисел из трех данных.
program zadacha3_5;
var x,y,z,sum:real;
Begin
writeln('Введите три числа');
readln(x,y,z);
sum:=0;
if x0 then sum:=sum+x;
if y0 then sum:=sum+y;
if z0 then sum:=sum+z;
writeln('сумма положительных чисел = ',sum);
End.
Просмотр содержимого документа
«_009_Ветвления_М3_БЛОК2»
Вопросы для повторения:
Что такое составное условие?
В чём отличие составного условия от простого?
Какие союзы используются при написании составного условия?
Зачем в задаче 3_6b используются двойные скобки?
Задания для самостоятельной работы:
Задано x. Вычислить у
a) б)
Заданы два числа. Являются ли они оба большими 20?
Заданы два числа. Являются ли они оба чётными?
Заданы два числа. Является ли хотя бы одно число чётным?
Заданы два числа. Является ли хотя бы одно число положительным?
Дано двухзначное число. Являются ли обе цифры числа чётными?
Дано трехзначное число. Входит ли в него цифра 4?
Проверить, является ли число трехзначным, у которого первая цифра равна последней.
Определить, является ли данное целое число N нечетным четырехзначным числом.
Вывести на экран номер четверти, которой принадлежит точка с координатами (x,y), при условии, что x и y отличны от 0.
Заданы действительные x и у. Принадлежит ли точка (x, y) заштрихованной части плоскости:
Дано натуральное число N (N.
Изучаем “Ветвления в Pascal”
МОДУЛЬ3_Блок № 2
Тема урока:
Условный оператор.
Простые и составные условия.
Цель занятия:
Закрепить навыки использования условного оператора;
Сформировать понятие о составном условии;
Получить навыки записи составных условий.
Условия, которые мы до сих пор использовали, являются простыми. Если после служебного слова if проверяется только одно условие (а mod 3=0; ab; k=1), то такое условие будем называть простым условием.
Если после служебного слова if возникает необходимость проверить сразу несколько условий, то группу таких простых условий будем называть составным условием. При написании составных условий, каждое из простых условий, входящих в составное, берётся в скобки. Можно использовать союзы and(и) или or(или).
Рассмотрим следующий пример:
Даны два числа а,b (a,b≠0). Ответить одного ли знака введённые числа.
Разберём данную задачу.
Здесь возможны четыре варианта входных данных, для каждого из которых запишем отдельное составное условие:
A | b | Ответ: |
a0 a a0 a | b0 b b b0 | Одного знака Одного знака Разные знаки Разные знаки |
program zadacha3_6a;
var a,b:real;
Begin
writeln('Введите два числa');
readln(a,b);
if (a0) and (b0) then writeln('числа одного знака');
if (aчисла одного знака');
if (a0) and (bчисла разных знаков');
if (a0) then writeln('числа разных знаков');
End.
На сегодняшнем занятии мы не просто будем изучать новую тему, но и попробуем уяснить для себя, что хороший программист всегда внимательно обдумывает даже уже написанную и отлаженную программу. Ведь почти всегда можно применить правило: "Любую программу можно переписать так, что она станет более короткой, либо более красивой".
А можно ли сделать нашу программу более красивой или более короткой? Да, можно. Давайте объединим первое и второе составные условия.
program zadacha3_6b;
var a,b:real;
Begin
writeln('Введите два числa');
readln(a,b);
if ((a0)and(b0)) or ((a
then writeln('числа одного знака')
else writeln('числа разных знаков');
End.
Программа стала действительно короче. Но в примере 3_6b составное условие состоит в свою очередь из двух составных условий. Просмотрите, как расставлены скобки.
А можно ли и эту программу сделать более красивой или более короткой? Можно. Приведём новую версию проверки условия для данной программы:
if a*b0 then writeln('числа одного знака')
else writeln('числа разных знаков');
Замените условие в компьютере и убедитесь, что оно работает верно.
Дано натуральное число. Проверить, является ли число двузначным, у которого первая цифра равна последней.
program zadacha3_7;
var a:integer;
Begin
writeln('Введите натуральное число');
readln(a);
if (a mod 10=a div 10) and (a9) and (a
then writeln('является') else writeln('не является');
End.
Просмотр содержимого документа
«_010_Ветвления_М3_БЛОК3»
В какой из следующих структур допущена ошибка? Какая?
Задания для самостоятельной работы:
Даны действительные числа x, y (x≠y). Меньшее из этих двух чисел заменить их полусуммой, а большее - их удвоенным произведением.
Даны два целых числа M, N. Если M делится нацело на N, то вывести на экран частное от деления, в противном случае - сообщение "M на N нацело не делится".
Даны три числа. Удвоить их, если они упорядочены по возрастанию, иначе отрицательные заменить их модулями.
Даны три числа. Удвоить их, если они целые, иначе нецелые заменить их целыми частями.
Дано натуральное число n (n 9999). Если число четырёхзначное, то получите и выведите перевёртыш этого числа (3528 → 8253), иначе выведите ответ "Число не четырехзначное".
Дано натуральное число n. Если оно двухзначное, то впишите в середину ноль (для 56 → 506), иначе выведите ответ "Число не двухзначное".
* Даны натуральные числа k, l ( 1 k, l 8). На клетке (k, l) расположена шахматная фигура:
конь b) ферзь
Вывести на экран координаты клеток, на которые может походить данная фигура, при этом учитывайте, что нельзя выходить за пределы доски.
Изучаем “Ветвления в Pascal”
МОДУЛЬ3_Блок № 3
Тема урока:
Операторные скобки.
Составной оператор.
Цель занятия:
Сформировать понятие о составном операторе;
Получить навыки использования операторных скобок;
Закрепить знания и умения по составлению программ на ветвления.
Операторные скобки
После служебного слова then, или после служебного else будет выполняться только один оператор. Если необходимо, чтобы выполнялось несколько операторов их нужно взять в операторные скобки:
begin
end;
Группу операторов находящуюся внутри операторных скобок будем называть составным оператором. Фактически, весь раздел операторов, внутри операторных скобок, представляет собой один составной оператор.
Для того, чтобы при большом количестве операторных скобок, программа была более читаемая, end желательно записывать под begin.
Даны действительные числа x, y (x≠y). Меньшее из этих двух чисел заменить их суммой, а большее - их произведением.
program zadacha3_8;
var a,b,sa,sb:longint;
Begin
writeln('Введите два числа');
readln(a,b);
sa:=a; sb:=b;
if ab then
begin
b:=sa+sb;
a:=sa*sb;
end
else
begin
a:=sa+sb;
b:=sa*sb;
end;
writeln ('первоначальные числа a=',sa,' b=',sb);
writeln ('полученные числа a=',a,' b=',b);
End.
Составить программу решающую квадратное уравнение вида ax2+bx+c=0.
program zadacha3_9;
var a,b,c:integer;
x,d,x1,x2:real;
Begin
writeln('введите коэффициенты а,b,c');
readln(a,b,c);
d:=b*b-4*a*c; {вычисление дискриминанта}
if d
if d=0 then
begin
writeln('уравнение имеет 1 корень');
x:=-b/(2*a);
writeln('x= ',x);
end;
if d0 then
begin
writeln('уравнение имеет 2 корня');
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('x1= ',x1);
writeln('x2= ',x2);
end;
End.
Вопросы для повторения:
В каких случаях после служебных слов then и else нужно писать begin … end, а в каких нет?
Что представляет собой составной оператор?
Почему end желательно записывать под begin?
Для чего в задаче 3_8 введены переменные sa, sb?
Просмотр содержимого документа
«_011_Ветвления_М3_БЛОК4»
Вводится число от 1 до 7, определяющее день недели. Дать название этого дня (1 - понедельник, 2 - вторник, …, 7 - воскресенье);
В спортивных соревнованиях Шарик, кот Матроскин, дядя Фёдор и почтальон Печкин заняли соответственно 1, 2, 3 и 4 места. Составить программу, которая по номеру места выдаёт имя участника соревнований.
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., XV);
Вводится число от 1 до 15. Вывести данное число, записанное в двоичной системе счисления (1, 10, 11, 100, 101, …., 1111);
Вводится число от 1 до 12, определяющее месяц года. Дать название этого месяца года (1 -Январь, 2 - Февраль, …, 12 Декабрь);
Вводится номер месяца. Вывести пору года для этого месяца (1 - зима, …, 3 - весна, …, 8 - лето, …);
Вводиться номер поры года. Вывести названия месяцев для этой поры года (1 – декабрь, январь, февраль, . . .);
*Вводится число от 1 до 100. Дать название этого числа (1 - один , 2 - два , …, 100 - сто);
Дано натуральное число N (N20), определяющее сумму денег в рублях. Дать для этого числа наименование: "рубль", "рубля", "рублей";
Дано натуральное число N (N0), определяющее возраст человека в годах. Дать для этого числа наименование: "год", "года", "лет";
Вводится число от 1 до 7, определяющее день недели. Вывести расписание уроков в вашем классе в этот день.
Изучаем “Ветвления в Pascal”
МОДУЛЬ3_Блок № 4
Тема урока:
Оператор выбора.
Цель занятия:
Познакомиться со структурой оператора выбора;
Научиться использовать оператор выбора.
Оператор выбора.
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы.
Структура оператора выбора такова:
case ключ выбора of
список выбора
[else операторы]
end;
Рассмотрим несколько примеров:
Вводиться число от 1 до 4, определяющее пору года. Дать название этой поры года (1 - зима, 2 - весна, 3 - лето, 4 - осень).
program zadacha3_10;
var
n:byte;
Begin
writeln('Введите номер поры года');
readln(n);
case n of
1: writeln('зима');
2: writeln('весна');
3: writeln('лето');
4: writeln('осень');
else
writeln('неправильно ввели номер поры года');
end;
End.
Составим программу "КАЛЬКУЛЯТОР", которая после ввода двух чисел и одного из знаков +, -, *, / произведёт вычисления, а результат выдаст на экран.
program zadacha3_11;
var
a,b,s:real;
sim:char;
Begin
writeln('Введите два числа');
readln(a,b);
writeln('Введите знак операции');
readln(sim);
case sim of
'+': s:=a+b;
'-': s:=a-b;
'*': s:=a*b;
'/': s:=a/b;
end;
writeln ('результат ',a,sim,b,' = ',s);
End.
В данной программе отсутствует часть else и поэтому, если ввести вместо рассматриваемых арифметических знаков, ввести любой символ, то программа будет работать, но будет работать неверно.
Вопросы для повторения:
Сколько строк может быть записано в списке выбора?
Может ли в операторе выбора отсутствовать часть else?
Сформулируйте, что может являться ключом выбора?
Можно ли оператор выбора заменить условным оператором if … then?
Сколько операторов if then понадобилось бы для решения задачи 3_10?
Задания для самостоятельной работы:
Отредактируйте задачу zadacha3_11 так, чтобы при вводе произвольного символа программа выдавала ответ: "Введена некорректная арифметическая операция";
Вводится число от 1 до 10. Дать название этого числа (1 - один , 2 - два , …, 10 - десять);
Просмотр содержимого документа
«_012_Ветвления_М3_БЛОК5»