Как составить разветвляющийся алгоритм вычисления функции

Занятие 2. Программная реализация разветвляющегося алгоритма

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

Будут приведены примеры вычисления функций, заданных на разных промежутках кусочно. Также приведены принцип и примеры расчетов для кусочных функций, заданных на двух промежутках и на трех промежутках.

Пример 5. Даны числа a=2, b=7. Вычислить сумму S и разность R чисел a и b. Сравнить полученные значения S и R и указать большее из них.

Блок-схема представлена на рис. 4.5.

Блок-схема для примера 5

Рис.
4.5.
Блок-схема для примера 5

Код программы (Visual Studio):

// proga14.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	double a, b, S, R;
	a=2;
	b=7;
	S=a+b;
	R=a-b;
	cout<<"S="<<S<<" R="<<R<<endl;
	if(S>R) cout<<"Max S"<<endl;
	else cout<<"Max R"<<endl;
	return 0;
}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
int main(){
	double a, b, S, R;
	a=2;
	b=7;
	S=a+b;
	R=a-b;
	cout<<"S="<<S<<" R="<<R<<endl;
	if(S>R) cout<<"Max S"<<endl;
	else cout<<"Max R"<<endl;
	return 0;
}

Результат выполнения программы:

Пример 6. Составить блок-схему и программу для вычисления значений функций y=sin x и z=ln x при различных значениях аргумента. Учесть область определения функций.

Решение. Рассмотрим области определения функций y и z. Синус имеет неограниченную область определения, т.е. считается при любом действительном х. Поэтому на расчет функции y не будет никаких условий. Логарифм же существует при положительном значении аргумента, т.е. считается при x>0. Поэтому, прежде чем считать функцию z, необходимо проверить условие «x>0«. Если условие верно, то можно считать z. Если ложно, то z считать нельзя, и в этом случае мы напишем в ответ, что z не существует фразой «z net«.

Блок-схема представлена на рис. 4.6.

Блок-схема для примера 6

Рис.
4.6.
Блок-схема для примера 6

Код программы (Visual Studio):

// proga15.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
	double x, y, z;
	cout<<"vvedi x=";
	cin>>x;
	y=sin(x);
	cout<<"y="<<y;
	if(x>0){
		z=log(x);
		cout<<" z="<<z<<endl;
	}
	else cout<<" z net"<<endl;
	return 0;
}

Результат выполнения программы:

Код программы (Borland C++):

#include <iostream.h>
#include <math.h>
int main(){
	double x, y, z;
	cout<<"vvedi x=";
	cin>>x;
	y=sin(x);
	cout<<"y="<<y;
	if(x>0){
		z=log(x);
		cout<<" z="<<z<<endl;
	}
	else cout<<" z net"<<endl;
	return 0;
}

Результат выполнения программы:

Пример 7. Вычислить значение функции Z=begin{cases}x+3,&x<1\4x,&xge 1end{cases} при различных значениях аргумента х (аргумент х считать с клавиатуры).

Решение: Функция Z задана как кусочная функция, т.е. при разных значениях х она считается по-разному. Следует отметить, что при одном значении аргумента функция будет иметь лишь одно значение, т.е. функция однозначная. График функции Z представлен на рис. 4.7.

График кусочной функции

Рис.
4.7.
График кусочной функции

Посчитаем значение функции Z при х=0. Прежде всего необходимо проверить, какое условие верно: «х<1» или «хge 1«. Условие для первой ветки функции верно, значит считаем Z=x+3=0+3=3.

Посчитаем значение функции Z при х=4. Прежде всего необходимо проверить, какое условие верно: «х<1» или «хge 1«. Условие для второй ветки функции верно, значит считаем Z=4x=4cdot 4=16.

При расчете кусочной функции так или иначе сначала проводится проверка условия, поэтому вычисление таких функций реализуется через разветвляющийся алгоритм. В данном примере будет один блок разветвления (соответственно один оператор if в программе). Условием будет служить проверка «х<1«. Если условие верно, то функция считается по первой ветке, если ложно, то по второй ветке. Второе условие «хge 1» будет лишним, т.к. оно соответствует стрелке «нет» от первого условия «х<1«.

Примечание. Функция Z – это функция, которая имеет один аргумент. Не следует путать запись кусочной функции с системой уравнений или системой неравенств, уравнения или неравенства которых также объединены фигурной скобкой. При расчете кусочной функции не решается никакая система уравнений, система неравенств, а просто подставляется конкретное значение аргумента и вычисляется значение функции.

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

Блок-схема для примера 7 представлена на рис. 4.8.

Блок-схема для примера 7

Рис.
4.8.
Блок-схема для примера 7

Код программы (Visual Studio):

// proga16.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(){
	double x, Z;
	cout<<"x=";
	cin>>x;
	if(x<1){
		Z=x+3;
	}
	else {
		Z=4*x;
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы:

Код программы (Borland C++):

#include <iostream.h>
int main(){
	double x, Z;
	cout<<"x=";
	cin>>x;
	if(x<1){
		Z=x+3;
	}
	else { Z=4*x;
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы:

Пример 8. Вычислить значение функции Z=begin{cases}x^2,&text{если} x<0\|x|,&text{если} 0le xle 5\5,&text{если} x> 5end{cases} при различных значениях аргумента х (аргумент х считать с клавиатуры).

Решение: Функция Z задана как кусочная функция, определенная на трех промежутках. График функции Z представлен на рис. 4.9.

График кусочной функции

Рис.
4.9.
График кусочной функции

В данной задаче будем использовать два условия для определения нужной ветви функции. Первое условие «x<0» определяет, следует ли рассчитывать по первой ветви функции. Второе условие «xle 5» определяет, следует ли рассчитывать по второй ветви. Если и первое, и второе условия оказались ложными (не выполнились), то следует рассчитывать по третьей ветви. Следовательно, в блок-схеме будем использовать два блока разветвления, а в программе два оператора условия if.

Например, нужно вычислить Z при х=-2. Первое условие «x<0» выполняется верно, т.к. -2<0. Следовательно, считать следует по первой ветви, а именно: Z=x^2=(-2)^2=4.

Например, нужно вычислить Z при х=2,5. Первое условие «x<0» выполняется неверно, т.к. 2,5>0. Проверяем второе условие «xle5«: 2,5≤5 – верно. Следовательно, считать следует по второй ветви, а именно: Z=|x|=|2,5|=2,5.

Например, нужно вычислить Z при х=10. Первое условие «x<0» выполняется неверно, т.к. 10>0. Проверяем второе условие «xle 5«: 10≤5 – неверно. Следовательно, ни первое, ни второе условия не выполнились, и считать следует по третьей ветви, а именно: Z=5.

Блок-схема представлена на рис. 4.10.

Блок-схема для примера 8

Рис.
4.10.
Блок-схема для примера 8

Код программы (Visual Studio):

// proga17.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main(){
	double x,Z;
	cout<<"x=";
	cin>>x;
	if(x<0){ Z=pow(x, 2.0);
	}
	else {if(x<=5){
			Z=fabs(x);}
		else {
			Z=5.0;}
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
#include <math.h>
int main(){
	double x, Z;
	cout<<"x=";
	cin>>x;
	if(x<0){
		Z=pow(x, 2.0);
	}
	else {
		if(x<=5){
			Z=fabs(x);
	}
	else {
		Z=5.0;
		}
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Borland C++):

Примечание. В качестве второго условия можно, конечно, взять «0le xle 5«. Но при проверке первого условия мы уже знаем, будет ли x<0. Поэтому можно пропустить повторную проверку на положительность переменной x. Также в качестве второго условия можно взять условие «x>5«. Если оно выполнится верно, то считать следует по третьей ветви, если неверно – то по второй.

Пример 9. Вычислить значение функции Z=begin{cases}x+y,&xy<1\x-y,&xyge 1end{cases} при различных значениях аргументов х и у (аргументы х и у считать с клавиатуры).

Решение: Данный Пример аналогичен Примеру 7. Отличие состоит в том, что сейчас функция Z зависит от двух переменных x и y. Для реализации алгоритма разницы нет, поэтому за основу возьмем блок-схему и программу из Примера 7.

Блок-схема представлена на рис. 4.11.

Блок-схема для примера 9

Рис.
4.11.
Блок-схема для примера 9

Код программы (Visual Studio):

// proga18.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(){
	double x, y, Z;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	if(x*y<1){ Z=x+y;
	}
	else {Z=x-y;
	}
	cout<<"Z="<<Z<<endl;
	return 0;}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
int main(){
	double x, y, Z;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	if(x*y<1){
		Z=x+y;
	}
	else {
		Z=x-y;
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Borland C++):

Ручной счет.

при х=-3; у=0,5 ху=-3·0,5=-1,5 <1 Z=x+y=-3+0,5=-2,5.
при x=0,8; y=2 xy=0,8·2=1,6≥1 Z=x-y=0,8-2=-1,2.

Пример 10. Вычислить значение функции Z(x,y)=begin{cases}x+y,&text{если} xy<0\x-y,&text{если} 0le xyle 5\y,&text{если} xy>5end{cases} при различных значениях аргументов х и у (аргументы х и у считать с клавиатуры).

Решение. В данном примере функция Z определена на трех промежутках, как в Примере 8. Отличие состоит в том, что Z зависит от двух переменных x и y. Для реализации алгоритма разницы нет, поэтому за основу возьмем блок-схему и программу из Примера 8.

Блок-схема представлена на рис. 4.12.

Блок-схема для примера 10

Рис.
4.12.
Блок-схема для примера 10

Код программы (Visual Studio):

// proga19.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(){
	double x, y, Z;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	if(x*y<0){ Z=x+y;}
	else {
		if(x*y<=5){
			Z=x-y;
		}
		else {
			Z=y;
		}
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
int main(){
	double x, y, Z;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	if(x*y<0){
		Z=x+y;
	}
	else {
		if(x*y<=5){
			Z=x-y;
	}
	else {
		Z=y;
		}
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Borland C++):

Ручной счет:

при х=-1,5; у=2   ху=-1,5·2=-3 <0   Z={по первой ветви}=x+y=-1,5+2=0,5.
при x=1,2; y=2   xy=1,2·2=2,4≤5   Z={по второй ветви}=x-y=1,2-2=-0,8.
при x=3; y=7   xy=3·7=21 >5   Z={по третьей ветви}=y=7.

Пример 11. Найти наибольшее (максимальное) из трех чисел.

Решение. Обозначим три числа буквами a, b, c. Числа a, b, c будем считывать с клавиатуры. Для нахождения наибольшего из трех чисел введем еще одну переменную max, которая будет хранить наибольшее значение. Принцип нахождения наибольшего значения заключается в следующем. Сначала принимаем max как первое число а. Потом поочередно сравниваем с оставшимися числами b и c. Если окажется, что b больше уже запомненного max, то следует перезаписать max, изменив его значение на значение b. Если же b<max, то max изменять не нужно, поэтому ветвь «нет» будет пустой. Аналогично сравниваем с и max. После двух сравнений в переменной max будет лежать наибольшее из трех чисел.

Примечание. Если чисел будет больше трех, например, пять чисел, то следует сделать четыре сравнения.

Примечание. Если нужно определить наименьшее из трех чисел, то вводят переменную min, приравнивают к первому числу. Затем поочередно сравнивают оставшиеся числа: «b<min«, «c<min«.

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

Блок-схема представлена на рис. 4.13.

Блок-схема для примера 11

Рис.
4.13.
Блок-схема для примера 11

Выполнение блок-схемы (при вводимых значениях чисел 23,7; -0,4; 34,28)

Начало
ввод данных a=23,7; b=-0,4; c=34,28
max=a=23,7
b>max   -0,4>23,7  нет
c>max   34,28>23,7  да
max=c=34,28
вывод max
Экран
a=23,7
b=-0,4
c=34,28
max=34,28

Код программы (Visual Studio):

// proga20.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	double a, b, c, max;
	cout<<"a=";
	cin>>a;
	cout<<"b=";
	cin>>b;
	cout<<"c=";
	cin>>c;
	max=a;
	if(b>max){
		max=b;
	}
	if(c>max){
		max=c;
	}
	cout<<"max="<<max<<endl;
	return 0;
}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
int main(){
	double a, b, c, max;
	cout<<"a=";
	cin>>a;
	cout<<"b=";
	cin>>b;
	cout<<"c=";
	cin>>c;
	max=a;
	if(b>max){
		max=b;
	}
	if(c>max){
		max=c;
	}
	cout<<"max="<<max<<endl;
	return 0;
}

Результат выполнения программы (Borland C++):

Пример 12. Найти значение функции Z(x)=max{3x; 10-x; |x|} при различных значениях аргумента х (аргумент х считать с клавиатуры).

Решение. Функция Z считается как наибольшее из трех выражений. Задача схожа с Примером 11. Введем обозначения: a=3x, b=10-x, c=|x|. Тогда наша задача максимально будет похожа на Пример 11.

Блок-схема представлена на рис. 4.14.

Блок-схема для примера 12

Рис.
4.14.
Блок-схема для примера 12

Выполнение блок-схемы (при вводимом x=1)

a=3x=3·1=3
b=10-x=10-1=9
c=|x|=|1|=1
Z=a=3
b>Z   9>3  да
Z=b=9
c>Z   1>9  нет
вывод Z

Код программы (Visual Studio):

// proga21.cpp: определяет точку входа для консольного приложения.
//	
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main(){
	double x, a, b, c, Z;
	cout<<"x=";
	cin>>x;
	a=3.0*x;
	b=10.0-x;
	c=fabs(x);
	Z=a;
	if(b>Z){Z=b;}
	if(c>Z){Z=c;}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
#include <math.h>
int main(){
	double x, a, b, c, Z;
	cout<<"x=";
	cin>>x;
	a=3.0*x;
	b=10.0-x;
	c=fabs(x);
	Z=a;
	if(b>Z){
		Z=b;
	}
	if(c>Z){
		Z=c;
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Borland C++):

Пример 13. Найти значение функции, заданной по формуле Z(x,y)=max{x+y, x-y, xy} при различных значениях аргументов х и у (аргументы х и у считать с клавиатуры).

Блок-схема представлена на рис. 4.15.

Блок-схема для примера 13

Рис.
4.15.
Блок-схема для примера 13

Код программы (Visual Studio):

// proga22.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	double x, y, a, b, c, Z;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	a=x+y;
	b=x-y;
	c=x*y;
	Z=a;
	if(b>Z){
		Z=b;
	}
	if(c>Z){
		Z=c;
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Visual Studio):

Код программы (Borland C++):

#include <iostream.h>
int main(){
	double x, y, a, b, c, Z;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	a=x+y;
	b=x-y;
	c=x*y;
	Z=a;
	if(b>Z){
		Z=b;
	}
	if(c>Z){
		Z=c;
	}
	cout<<"Z="<<Z<<endl;
	return 0;
}

Результат выполнения программы (Borland C++):

Краткие итоги

Одна и та же блок-схема может быть использована при написании разных программ С++. Результат выполнения программы из-за этого не должен меняться.

Упражнения

  1. Составьте блок-схему и программу для вычисления значений функций z1=arccos^3(2,5x-0,6y), z2=0,45|x^3-y^2|+2lg^{2,5}y при различных значениях аргументов x и y.
  2. Составьте блок-схему и программу по нахождению корней квадратного уравнения через дискриминант. Коэффициенты квадратного уравнения считывайте с клавиатуры.
  3. Составьте блок-схему и программу, которая спрашивает у пользователя возраст и в соответствии с возрастной группой («дошкольник», «школьник», «взрослый», «пожилой») выдает соответствующую фразу на экран.
  4. Составьте блок-схему и программу для вычисления значения функции Z(x,y)=begin{cases}sin^{0.4}(4^{4y})+lgsqrt{y-frac{x}{y-0.8}},&text{если} x+y<-2\2.3,&text{если} -2le x+yle 0\frac{sqrt[3]{x}-sqrt[3]{y}}{x}-y,&text{если} x+y>0end{cases} при разных значениях аргументов x и y.
  5. Составьте блок-схему и программу для вычисления значений функции Z(x,y)=min{max{sin x, sin y},x,y} при разных значениях аргументов x и y.

Разветвляющимсяназывается алгоритм, в котором
предусмотрено прохождение различных
вариантов работы в зависимости от
выполнения или не выполнения некоторого
условия. В блок-схеме это условие
записывается в ромб-блок сравнения.

Общая
структура ветвления:


да

нет

Вар «да»

Вар.
«нет»

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

Пример
1.
Вычислить
значение функции

1. Ввести x.

2.
Если x–12,
то y:=–x2

3.
Если x<0, то y:=x4

4. y := x–2

5. Вывести y

6. Конец

При
тестировании алгоритмов с развилкой
необходимо подбирать такие исходные
данные, чтобы можно было проверить все
ветви. В приведенном выше примере должно
быть по крайней мере три тестовых набора.

Пример
2.
Дано
натуральное число n.
Если число нечётное и его удвоение не
приведет к выходу за 32767 (двухбайтовое
целое число со знаком), удвоить его,
иначе — оставить без изменения.

Чтобы
удовлетворить условию удвоения, число
n
должно быть нечетным и меньше 16384.

1.
Ввести число n

2.
Если число n
нечетное и меньше 16384, то n
:= n
* 2

3.
Вывод n

4. Конец

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

1.5. Циклические алгоритмы (циклы)

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

Цикломназывается
участок алгоритма, реализующий многократно
повторяющееся при различных значениях
параметров однотипные вычисления
(например, расчеты по одной и той же
формуле), Алгоритм, содержащий цикл,
называется циклическим.

Циклический алгоритм
позволяет существенно сократить объем
программы.

Для организации цикла
необходимо предусмотреть:

— задание начального значения параметра
цикла – переменной, которая будет
изменяться при повторениях цикла;

— изменение значения этой переменной
перед каждым новым повторением цикла;

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

Пример
1
.Вычислить сумму:S=12+22+32+…+n2=∑i2
,

где n–
заданное число.

Предлагается
следующий алгоритм решения задачи.

Шаг1.Ввестиn.

Шаг 2.
ПоложитьS=0 (обнуление
ячейки суммы).

Шаг 3.Положитьi= 1.

Шаг 4.Вычислитьi2и
прибавит к текущему значениюS:
обозначение: S=S+i2
.

Шаг 5.Увеличитьiна 1; обозначение:i=i+ 1.

Шаг 6.Сравнитьiсn;
еслиi<n,
вернуться к шагу 4, иначе перейти к шагу
7.

Шаг 7.Вывести S.

Шаг 8.Останов.

Основная повторяющаяся
операция: S=S+i2выполняется при различных значенияхi. Величинаiназываетсяпараметром цикла.В
рассмотренном примере параметр цикла
изменяется от начального значенияi= 1 до конечногоi=nс шагом 1.

Варианты:1)S=12+32+52+…

2) S=1*2*3*…*n

Задача. Задача
табулирование функции. Требуется
построить таблицу значений функцииy=f(x)на отрезке [a,b]
с шагомh, т.е. вычислить
значения функции в точкахx=a,a+h,a+2h,
… ,bвывести их на печать.

Задача.Составить
схему алгоритма вычисления 100 значений
функции y=sin(ax)/x при xi=1,2,3,…,100. Очевидно,
что для определения всех значений
функции y необходимо 100 раз вычислять
по этой формуле значения y и печатать
их, изменяя каждый раз аргумент x на
единицу. Цикл должен повторяться, пока
x<100. Если х станет больше 100, то будет
осуществлен выход из цикла, т.е. переход
к следующему по порядку действию. Если
какие-либо операторы необходимо выполнить
несколько раз, то их не переписывают
каждый раз заново, а организуют цикл.

Пример
2.
Подсчитать
количество нечетных цифр в записи
натурального числа n.

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

1.
Ввести число n

2. K :=
0 {подготавливаем счётчик}

3. Если
n = 0, переход к п.

4.
Если n mod 10 mod 2 = 1, то
K := K +1

5. n:=ndiv10

6.
Переход к п. 3

7. Вывод
K

8. Конец

Задача
решена двумя способами. Слева решение
оформлено с использованием цикла с
предусловием, справа — с постусловием.

Пример
3.
Дана
последовательность, общий член которой
определяется формулой

Вычислить
при n>2 сумму тех ее членов, которые
больше заданного числа.

При
решении задачи находится очередной
член последовательно и, если он больше
,
добавляется к сумме.

1.
Ввести 

2. S := 0

3. A := 1/4

4. n := 3

5.
Сравнить А с .
Если A>=,
переход к п. 10

6. S := S + A

7. A := (n-1)/(n*n)

8. n := n + 1

9.
Переход
к
п.
5

10. Вывод S

11. Конец

В
рассмотренных выше примерах количество
повторений заранее неизвестно. В первом
оно зависит от количества цифр в записи
натурального числа, во втором — от числа
.

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

Пример
4.
Найти
произведение первых k
натуральных чисел, кратных трём.

При
составлении алгоритма учтем, что первое
натуральное число, кратное 3, есть тройка,
а все последующие больше предыдущего
на 3.

1. Ввод k

2. P := 1 {здесь
накапливаем произведение}

3. T := 0 {здесь
будут числа, кратные 3}

4. I := 1

5. Если I > k,
переход к п. 10

6. T := T + 3

7. P := P * T

8. I := I + 1

9.
Перейти
к
п.
5

10. Вывод P

11. Конец

Пример
алгоритма.

Другие
примеры будут записаны уже на ЯПВУ. В
настоящем же разделе предпринята попытка
продемонстрировать, что изучение
программирования разумно начинать
собственно с разработки алгоритмов, не
акцентируя первоначально внимания на
записи алгоритма на том или ином языке
программирования. В то же время сторонники
структурного подхода к программированию
предлагают придерживаться этого подхода
и при программировании на уровне
блок-схем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

ОГБПОУ «НОВГОРОДСКИЙ АГРОТЕХНИЧЕСКИЙ ТЕХНИКУМ»

ИНСТРУКЦИОННАЯ КАРТА НА ВЫПОЛНЕНИЕ

ПРАКТИЧЕСКОЙ РАБОТЫ № 8 ПО ДИСЦИПЛИНЕ

ИНФОРМАТИКА.

ТЕМА: «Разветвляющиеся алгоритмы».

НАИМЕНОВАНИЕ РАБОТЫ: « Программирование разветвляющихся алгоритмов».

Наименование объектов контроля и оценки

Основные показатели оценки результата

Владение навыками алгоритмического мышления и понимание методов фор­мального описания алгоритмов, владение знанием основных алгоритмических конструкций, умение анализировать алгоритмы;

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

Выполнение согласно инструкционным картам и методическим рекомендациям.

НОРМА ВРЕМЕНИ: 6 часов.

ОСНАЩЕНИЕ РАБОЧЕГО МЕСТА: ПК, инструкционная карта, калькулятор, тетрадь для ПЗ.

ПРАВИЛА ПО ТЕХНИКЕ БЕЗОПАСНОСТИ согласно инструкции.

ЛИТЕРАТУРА:

  1. Цветкова М.С., Хлобыстова И.Ю. Информатика. Учебник для СПО. М.: Академия. 2017 г. – 352с.

  2. Поляков К.Ю. и др. Информатика в 2-х ч. 10 кл. Учебник. М.: БИНОМ. 2013 г. – 344с. (электронный ресурс) (формат PDF)

Теоретическая часть.

Разветвляющиеся алгоритмы. Программирование разветвляющихся алгоритмов.

Разветвляющаяся конструкция предполагает выбор шага для выполнения на основе проверки истинности какого-либо условия.

  1. Условный оператор.

Условный оператор описывает часть программы, которая будет выполнена, если проверяемое этим оператором условие истинно.

IF (логическое выражение) THEN

Последовательность операторов, выполняемая, если логическое выражение ИСТИННО.

ELSE

Последовательность операторов, выполняемая, если логическое выражение ЛОЖНО

ENDIF

Пример 1. Задача 1Составить алгоритм вычисления значения функции . Написать программу.

CLS

PRINT “вычисление у”

INPUT «Введите х»; x

IF X – 5 = 0 THEN

PRINT «На ноль делить нельзя»

ELSE

Y = 2*X/(X – 5)

ENDIF

PRINT « Y= »; Y

END

Пример 2. Составить алгоритм вычисления значения функции. Написать программу.

СLS

PRINT «Вычисление Z»

INPUT «Введите х, у»; X, Y

IF X Y THEN

Z = X – Y

ELSE

Z = Y – X + 1

ENDIF

PRINT «Z = »; Z

END

Практическая часть.

Задание 1

.Составить Блок схему. На основании блок-схемы написать программу.

  1. Составить алгоритм и программу вычисления У по формуле:

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

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

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

  1. Составить алгоритм нахождения наименьшего из двух чисел а и в.

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

  3. Составить алгоритм нахождения квадрата каждого неотрицательного числа.

  4. Составить алгоритм вывода на экран: «Число отрицательное», если выбранное число меньше нуля (отрицательное), иначе «Число положительное», если число больше нуля (из двух чисел, числа вводить с клавиатуры).

  5. Составить алгоритм нахождение максимального из трёх чисел (числа вводятся с клавиатуры).

  6. Составить алгоритм нахождение корней квадратного уравнения: ax2+bx+c=0 (а=2, в=4, с=1)

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

  1. Составить блок-схему по данной задаче;

  2. Проверить правильность работы, используя набор контрольных данных;

  3. Открыть Qbasic;

  4. Написать программу на языке программирования;

  5. Запустить программу на выполнение (F5);

  6. Редактирование программы;

  7. Анализ результата;

  8. Сохранение программы в виде файла на диске;

  9. Результат показать преподавателю.

Задания для самостоятельной работы:

Вариант № 1

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

  2. Составить алгоритм и программу вывода на экран «Число положительное», если введённое число больше нуля, иначе напечатать «Число отрицательное или равно нулю».

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

Вариант № 2

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

  2. Составить алгоритм и программу нахождения наименьшего из двух чисел С и D и вывести на печать “Я молодец”, если наименьшим является С; вывести на печать “Я умница”, если наименьшим является D.

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

Вариант № 3

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

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

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

Вариант № 4

  1. Составить алгоритм и программу вычисления по формуле:

  2. Составить алгоритм и программу нахождения наибольшего из двух чисел С, D и вывести на печать “МАХ С”, если наибольшим является С и вывести на печать “МАХ D”, если наибольшим является D.

  3. Составить алгоритм и программу вычисления У по формуле:

Критерии оценки за самостоятельную работу

Каждое задание оценивается в один балл.

«отлично» — 3 балла;

«хорошо» 2 балла;

«удовлетворительно» — 1 балла;

«неудовлетворительно» — 0 балла и менее.

Практическая
раборта № 1

Построение
блок-схем алгоритмов(теория)

Предпочтительнее
до записи на алгоритмическом языке представить алгоритм в виде блок-схемы. Для
построения алгоритма в виде блок-схемы необходимо знать назначении каждого из
блоков. В таблице 1. приводятся типы блоков и их назначение.

Таблица 1

Блок

Назначение
блока

1

Начало
или конец

блок-схемы

2

Ввод
или вывод данных

3

Процесс
(в частности вычислительный)

4

условие

6

Цикл
с параметром (
for)

Основные
типы алгоритмов

Алгоритмизация выступает как набор
определенных практических приёмов, особых специфических навыков рационального
мышления в рамках заданных языковых средств. Алгоритмизация вычислений
предполагает решение задачи в виде последовательности действий, т.е. решение,
представленное в виде блок-схемы. Можно выделить типичные алгоритмы. К ним
относятся: линейные алгоритмы, разветвляющиеся алгоритмы, циклические
алгоритмы.

Линейные алгоритмы

Линейный алгоритм является наиболее
простым. В нём предполагается последовательное выполнение операций. В этом
алгоритме не предусмотрены проверки условий или повторений.

Пример: Вычислить функцию z=
(х-у)/x +y2
.

Составить блок-схему вычисления функции по
линейному алгоритму. Значения переменных х, у могут быть
любые, кроме нуля, вводить их с клавиатуры.

Решение: Линейный алгоритм вычисления
функции задан в виде блок-схемы на рис.1. При выполнении линейного алгоритма
значения переменных вводятся с клавиатуры, подставляются в заданную функцию,
вычисляется результат, а затем выводится результат.

Рис.1. Линейный алгоритм

Назначение блоков в схеме на
рис.1:

·       
Блок 1 в схеме служит в качестве
логического начала.

·       
Блок 2 соответствует вводу данных.

·       
Блок 3 представляет арифметическое
действие.

·       
Блок 4 выводит результат.

·       
Блок 5 в схеме служит в качестве
логического завершения схемы.

Алгоритмы ветвлений

Разветвляющийся алгоритм предполагает
проверку условий для выбора решения. Соответственно в алгоритме появятся две
ветви для каждого условия.

В
примере рассматривается разветвляющийся алгоритм, где в зависимости от условия
выбирается один из возможных вариантов решений. Алгоритм представляется в виде
блок-схемы.

Пример:
При выполнении условия
x>0
вычисляется функция:
z=
x+
y,
иначе, а именно, когда х=0 или
x<0,
вычисляется функция:
z=x2+y2.

Составить
блок-схему вычисления функции по алгоритму ветвления. Значения переменных х,
у
могут быть любые, вводить их с клавиатуры.

Решение:
На рис.2 представлен разветвляющийся алгоритм, где в зависимости от условия
выполнится одна из веток. В блок-схеме появился новый блок 3, который проверяет
условие задачи. Остальные блоки знакомы из линейного алгоритма.

Рис.2. Алгоритм ветвления

Пример: Найти максимальное значение
из трёх различных целых чисел, введенных с клавиатуры. Составить блок-схему
решения задачи.

Решение: Данный алгоритм
предполагает проверку условия. Для этого выбирается любая из трёх переменных и
сравнивается с другими двумя. Если она больше, то поиск максимального числа
окончен. Если условие не выполняется, то сравниваются две оставшиеся
переменные. Одна из них будет максимальной. Блок-схема к этой задаче
представлена на рис 3.

Рис. 3. Блок-схема поиска максимума

Циклические алгоритмы

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

Из
циклических алгоритмов выделяют два типа:

1)                
с заданным количеством циклов или со
счётчиком циклов;

2)                
количество циклов неизвестно.

Пример:
В цикле вычислить значение функции z=x*y при условии, что одна из
переменных
x
меняется в каждом цикле на единицу, а другая переменная у не
меняется и может быть любым целым числом. В результате выполнения цикла при
начальном значении переменной х=1 можно получить таблицу умножения.
Количество циклов может быть любым. Составить блок-схему решения задачи.

Решение:
В примере количество циклов задаётся. Соответственно выбирается алгоритм
циклов первого типа. Алгоритм этой задачи приводится на рис. 4.

Во
втором блоке вводятся количество циклов n и любые целые числа х,
y
.

В
блок-схеме появился новый блок 3, в котором переменная i считает
количество циклов, после каждого цикла увеличиваясь на единицу, пока счётчик не
будет равен i=n. При i=n будет выполнен последний
цикл.

В
третьем блоке указывается диапазон изменения счётчика цикла (от i =1 до i=n).

В
четвёртом блоке изменяются значения переменных: z, x.

В
пятом блоке выводится результат. Четвёртый и пятый блоки повторяются в каждом
цикле.

Рис.4 . Циклический алгоритм со счётчиком
циклов

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

Если количество циклов неизвестно, то
блок-схемы циклических алгоритмов могут быть представлены в виде рисунков 5, 6.

Пример:
Вычислить у=у-
x
пока
y>x,
если
y=30,
x=4.
Подсчитать количество выполненных циклов, конечное значение переменной у.
В цикле вывести значение переменной у, количество выполненных
циклов. Составить блок-схему решения задачи.

Решение:
В примере количество циклов неизвестно. Соответственно выбирается алгоритм
циклов второго типа. Алгоритм этой задачи приводится на рис. 5.

Условие
проверяется на входе в цикл. В теле цикла выполняется два блока:

1)
у=у-х;
i=i+1;

2)
вывод значений переменных
i,
y.

Цикл
выполняется до тех пор, пока выполняется условие y>x. При условии
равенства этих переменных у=х или y<x цикл заканчивается.

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

Рис.5. Блок-схема
циклического алгоритма с предусловием

Во втором блоке вводятся y=30,
x=4.

В
третьем блоке проверяется условие
y>x
на входе в цикл. Если условие выполняется, то переход к блоку 4, иначе на блок
6.

В
четвёртом блоке вычисляется значение переменной у, подсчитывается
количество выполненных циклов
i=i+1.

В
пятом блоке выводится результат:

·       
значение переменной у,

·       
количество выполненных циклов i.

Пример:
Составить блок-схему примера (рисунок 5), проверяя условие выхода из цикла.
В этом примере условие задачи не меняется, и результат выведется тот же, но
блок-схема будет другой.

Решение:
В этом случае проверяется условие на выход из цикла: y<=x. При
этом условии цикл не выполняется. Условие в блок-схеме следует перенести в
конец цикла, после вывода на печать. Цикл выполняется до тех пор, пока
выполняется условие y>x.

Алгоритм,
если условие перенести в конец цикла, называется алгоритмом цикла с
постусловием
. Алгоритм этой задачи приводится на рис. 6.

Во
втором блоке вводятся
y=30,
x=4.

В
третьем блоке вычисляется значение переменной у, подсчитывается
количество выполненных циклов
i=i+1.

В
четвёртом блоке выводится результат:

·       
значение переменной у,

·       
количество выполненных циклов i.

В
пятом блоке проверяется условие
y<=x
на выход из цикла. Если условие выполняется, то переход к блоку 6, иначе на
блок 3 и цикл повторяется.

 

Рис.6 . Алгоритм цикла с
постусловием

Индивидуальные задания к работе:

1.
Найти
результат работы алгоритма:

Входные данные по вариантам

A

B

C

D

1

0

-1

-2

-3

2

1

0

-1

-2

3

2

1

0

-1

4

3

2

1

0

5

4

3

2

1

6

5

4

3

2

7

6

5

4

3

8

7

6

5

4

9

-3

7

6

5

10

-4

-3

7

6

11

-5

-4

-3

7

12

-6

-5

-4

-3

13

-7

-6

-5

-4

14

9

-7

-6

-5

15

8

7

-7

-6

16

5

5

8

-7

17

5

2

4

5

2.     При
заданном Х условие выполнется? Написать результат вычисления и ответ попадаем в
условие или нет.

Входные данные по вариантам

X1

X1

1

55

12

2

85

13

3

24

17

4

65

15

5

17

54

6

15

67

7

26

3

8

27

21

9

92

34

10

12

23

11

45

22

12

66

45

13

71

46

14

13

76

15

45

67

16

53

35

17

52

23

3.     Написать
результат выполнения алгоритма с указанными входными данными

Входные данные по вариантам

S

1

1,5

2

1,8

3

2,4

4

1,6

5

1,7

6

1,3

7

2,6

8

2,37

9

1,92

10

1,12

11

1,45

12

2,66

13

2,71

14

2,13

15

1,45

16

2,53

17

1,52

4.     Написать
результат выполнения алгоритма с указанными входными данными

Входные данные по вариантам

X

1

-1

2

0

3

1

4

2

5

3

6

4

7

5

8

6

9

7

10

-3

11

-4

12

-5

13

-6

14

-7

15

7

16

5

17

2

5.     Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.

Задача

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

6.     Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.

Задача

1

Дано двузначное число.
Найти: число десятков в нем;

2

Дано двузначное число.
Найти: число единиц в нем;

3

Дано двузначное число.
Найти: сумму его цифр;

4

Дано двузначное число.
Найти: произведение его цифр.

5

Дано двузначное число.
Получить число, образованное при перестановке цифр заданного числа.

6

Дано трехзначное число.
Найти: ачисло единиц в нем;

7

Дано трехзначное число.
Найти: число десятков в нем;

8

Дано трехзначное число.
Найти: сумму его цифр;

9

Дано трехзначное число.
Найти: произведение его цифр.

10

Дано трехзначное число.
Найти число, полученное при прочтении его цифр справа налево.

11

Дано трехзначное число.
В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное
число.

12

Дано трехзначное число.
В нем зачеркнули последнюю справа цифру и при- писали ее в начале. Найти
полученное число.

13

Дано трехзначное число.
Найти число, полученное при перестановке первой и второй цифр заданного числа

14

Дано трехзначное число.
Найти число, полученное при перестановке второй и третьей цифр заданного числа.

15

Дано трехзначное число,
в котором все цифры различны. Получить шесть чи- сел, образованных при
перестановке цифр заданного числа.

16

Дано натуральное число
n (n > 9). Найти: число единиц в нем;

17

Дано натуральное число
n (n > 9). Найти: число десятков в нем.

7.     Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.

Задача

1

Определить максимальное
и минимальное значения из двух различных веще- ственных чисел.

2

Известны два
расстояния: одно в километрах, другое — в футах ( 1 фут 0,305 м ). Какое из
расстояний меньше?

3

Известны две скорости:
одна в километрах в час, другая — в метрах в секун- ду. Какая из скоростей
больше?

4

Даны радиус круга и
сторона квадрата. У какой фигуры площадь больше?

5

Даны объемы и массы
двух тел из разных материалов. Материал какого из тел имеет большую
плотность?

6

Известны сопротивления
двух несоединенных друг с другом участков элек- трической цепи и напряжение
на каждом из них. По какому участку протекает меньший ток?

7

Даны вещественные числа
a, b, c (a 0). Выяснить, имеет ли квадратное уравнение с данными параметрами
решение

8

Известны площади круга
и квадрата. Определить: уместится ли круг в квадрате?

9

Известны площади круга
и квадрата. Определить:  уместится ли квадрат в круге?

10

Известны площади круга
и равностороннего треугольника. Определить: уместится ли круг в треугольнике?

11

Известны площади круга
и равностороннего треугольника. Определить: уместится ли треугольник в круге?

12

Дано двузначное число.
Определить: какая из его цифр больше: первая или вторая;

13

Дано двузначное число.
Определить: одинаковы ли его цифры

14

Дано двузначное число.
Определить: кратна ли трем сумма его цифр;

15

Дано двузначное число. Определить:
кратна ли сумма его цифр числу а.

16

Дано трехзначное число.
Определить, какая из его цифр больше: первая или последняя;

17

Дано трехзначное число.
Определить, какая из его цифр больше: вторая или последняя.

8.     Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.

Задача

1

Одна штука некоторого
товара стоит 20,4 руб. Напечатать таблицу стоимости 2, 3, …, 20 штук этого
товара.

2

Напечатать таблицу
соответствия между весом в фунтах и весом в килограм- мах для значений 1, 2,
…, 10 фунтов (1 фунт = 453 г).

3

Напечатать таблицу
перевода расстояний в дюймах в сантиметры для значе- ний 10, 11, …, 22
дюйма (1 дюйм = 25,4 мм).

4

Напечатать таблицу
перевода 1, 2, … 20 долларов США в рубли по текущему курсу (значение курса
вводится с клавиатуры).

5

Считая, что Земля —
идеальная сфера с радиусом R 6350 км, определить расстояние до линии
горизонта от точки с высотой над Землей, равной 1, 2, … 10 км.

6

. Напечатать таблицу
умножения на 7:

7

Напечатать таблицу
умножения на 9:

8

Напечатать
«столбиком» значения sin 2 , sin 3 , …, sin 20 .

9

Напечатать таблицу
стоимости 50, 100, 150, …, 1000 г сыра (стоимость 1 кг сыра вводится с
клавиатуры).

10

Вывести
«столбиком» следующие числа: 2,1, 2,2, 2,3, …, 2,8.

11

. Вывести
«столбиком» следующие числа: 3,2, 3,2, 3,3, …, 3,9.

12

Вывести
«столбиком» следующие числа: 2,2, 2,4, 2,6, …, 4,2.

13

Вывести «столбиком»
следующие числа: 4,4, 4,6, 4,8, …, 6,4.

14

Напечатать таблицу
стоимости 100, 200, 300, …, 2000 г конфет (стоимость 1 кг конфет вводится с
клавиатуры).

15

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

16

Напечатать таблицу
умножения на 2:

17

Напечатать таблицу
умножения на 5:

9.     Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.

Задача

1

Даны числа а1, а2,
а3…а10, . Определить их сумму

2

Известна масса каждого
из 12 предметов. Определить общую массу всего на- бора предметов.

3

. Известны оценки
абитуриента на четырех экзаменах. Определить сумму на- бранных им баллов.

4

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

5

Известна масса каждого
предмета, загружаемого в автомобиль. Определить общую массу груза.

6

Известно сопротивление
каждого из элементов электрической цепи. Все эле- менты соединены
последовательно. Определить общее сопротивление цепи.

7

Известно сопротивление
каждого из элементов электрической цепи. Все эле- менты соединены
параллельно. Определить общее сопротивление цепи.

8

Известны оценки по
физике каждого из 20 учеников класса. Определить сред- нюю оценку.

9

Известны оценки ученика
по 10 предметам. Определить среднюю оценку

10

Известны оценки по
алгебре каждого ученика класса. Определить среднюю оценку

11

Известна масса каждого
предмета из некоторого набора предметов. Опреде- лить среднюю массу

12

Известны оценки двух
учеников по четырем предметам. Определить сумму оценок каждого ученика.

13

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

14

Известен возраст (в
годах в виде 14,5 лет и т. п.) каждого ученика двух клас- сов. Определить
средний возраст учеников каждого класса. В каждом классе учатся 20 человек.

15

Известно количество
осадков, выпавших за каждый день января и марта. Оп- ределить среднедневное
количество осадков за каждый месяц

16

Известен рост каждого
ученика двух классов. Определить средний рост уче- ников каждого класса.
Численность обоих классов одинаковая.

17

Известны оценки по
физике каждого ученика двух классов. Определить среднюю оценку в каждом
классе. Количество учащихся в каждом классе одинаковое.

10. Построить
блок схему к задаче(по вариантам). Указать тип алгоритма, что дано и что нужно
найти.

Задача

1

Дано натуральное число.
а) Верно ли, что сумма его цифр больше 10?

2

Дано натуральное число.
б) Верно ли, что произведение его цифр меньше 50?

3

Дано натуральное число.
в) Верно ли, что количество его цифр есть четное число?

4

Дано натуральное число.
г) Верно ли, что это число четырехзначное? Составное условие и вложенный
условный оператор не использовать.

5

Дано натуральное число
д) Верно ли, что его первая цифра не превышает 6?

6

Дано натуральное число.
е) Верно ли, что оно начинается и заканчивается одной и той же цифрой?

7

Дано натуральное число.
ж) Определить, какая из его цифр больше: первая или последняя.

8

Дано натуральное число.
а) Верно ли, что сумма его цифр меньше a?

9

Дано натуральное число.
б) Верно ли, что произведение его цифр больше b?

10

Дано натуральное число.
в) Верно ли, что это число k-значное? Составное условие и вложенный услов-
ный оператор не использовать.

11

Дано натуральное число.
г) Верно ли, что его первая цифра превышает m?

12

Дано натуральное число.
а) Верно ли, что сумма его цифр больше k, а само число четное?

13

Дано натуральное число.
б) Верно ли, что количество его цифр есть четное число, а само число не пре-
вышает b?

14

Дано натуральное число.
в) Верно ли, что оно начинается цифрой x и заканчивается цифрой y?

15

Дано натуральное
число.  г) Верно ли, что произведение его цифр меньше a, а само число делится
на b?

16

Дано натуральное число.
д) Верно ли, что сумма его цифр больше m, а само число делится на n?

17

Дано натуральное число.
Определить: а) есть ли в нем цифра 3;

to continue to Google Sites

Not your computer? Use Guest mode to sign in privately. Learn more

Понравилась статья? Поделить с друзьями:
  • Как найти волка осенью
  • Как составить бальную систему
  • Как нашли челябинский метеорит
  • Как найти письмо в казахстане
  • Прямоугольный треугольник как найти среднюю линию трапеции