Презентация "Программирование циклических алгоритмов"
- Рубрика: Презентации / Другие презентации
- Просмотров: 151
Презентация "Презентация "Программирование циклических алгоритмов"" онлайн бесплатно на сайте электронных школьных учебников edulib.ru
Задача1
Леспромхоз ведёт заготовку деловой древесины. Её первоначальный объём на территории леспромхоза был равен 120000 м3. Ежегодный естественный прирост составляет 5,5%. Годовой план заготовки древесины - 9500 м3.
Через сколько лет объём деловой древесины на данной территории достигнет минимально допустимого значения - 23000 м3 и заготовку леса придётся прекратить.
1) Переменные:
v – объем древесины (double)
k – количество лет (int)
2) Первоначальные значения:
v=120 000
k=0
3) Тело цикла:
v = v + v*0.055 - 9500
(v = 1.055*v - 9500)
k++
(k=k+1)
4) Условие продолжения цикла:
v > 23 000
5) Результат:
k
Леспромхоз ведёт заготовку деловой древесины. Её первоначальный объём на территории леспромхоза был равен 120000 м3. Ежегодный естественный прирост составляет 5,5%. Годовой план заготовки древесины - 9500 м3. Через сколько лет объём деловой древесины на данной территории достигнет минимально допустимого значения - 23000 м3 и заготовку леса придётся прекратить.
#include <iostream>
using namespace std;
int main()
{
int k=0;
double v=120000;
while (v>23000)
{
v=1.055*v-9500;
k++;
}
cout<<k;
}
Задача 2
Найдите сумму четных цифр и количество нечетных цифр натурального числа N.
Входные данные:
12345
Выходные данные:
s=6
k=3
1) Переменные:
x – число (int)
d – цифра числа (int)
k – количество нечетных цифр (int)
s – сумма четных цифр (int)
2) Первоначальные значения:
s=0
k=0
3) Тело цикла:
Найти цифру в числе
(d=x%10)
Если цифра четная, то увеличить сумму на d
иначе
увеличить количество на 1
Уменьшить х в 10 раз (отсечь последнюю цифру)
4) Условие продолжения цикла:
x > 0
5) Результат:
s, k
Найдите сумму четных цифр и количество нечетных цифр натурального числа N.
#include <iostream>
using namespace std;
int main()
{
int k=0, s=0,d,x;
cin >> x;
while (x>0)
{
d=x%10;
if (d%2==0)s=s+d;
else k++;
x=x/10;
}
cout<<"s="<<s<<endl;
cout<<"k="<<k;
}
Задача 3
Напишите программу, которая вводит с клавиатуры числа до тех пор, пока не будет введено число 0. В конце работы программы на экран выводится сумма и произведение введенных чисел (не считая 0).
Входные данные:
1 2 3 4 5 0
Выходные данные:
s=15
p=120
1) Переменные:
x – число (int)
s – сумма чисел (int)
p – произведение чисел(int)
2) Первоначальные значения:
s=0
p=1
Ввести первое значение x
3) Тело цикла:
Сумму увеличить на х
Произведение увеличить в х раз
Ввести новое значение x
4) Условие продолжения цикла:
x != 0
5) Результат:
s, p
Напишите программу, которая вводит с клавиатуры числа до тех пор, пока не будет введено число 0. В конце работы программы на экран выводится сумма и произведение введенных чисел (не считая 0).
#include <iostream>
using namespace std;
int main()
{
int p=1, s=0,x;
cin >> x;
while (x!=0)
{
s=s+x;
p=p*x;
cin >> x;
}
cout<<"s="<<s<<endl;
cout<<"p="<<p;
}
Задача 4
Алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока первое число не станет равно второму; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм.
Алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно второму; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм.
Пусть A=56, B=24
32 24
+
+
8 24
+
8 16
+
8 8
-
Алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно второму; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм.
1) Переменные:
А, В – числа (int)
N – НОД (А, В) (int)
2) Первоначальные значения:
3) Тело цикла:
Если А > B, то А уменьшить на В
Если В > А, то В уменьшить на А
4) Условие продолжения цикла:
А != В
5) Результат:
В (или А)
#include <iostream>
using namespace std;
int main()
{
int A, B, N;
cin>>A>>B;
while (A!=B)
{
if (A>B) A=A-B;
if (B>A) B=B-A;
}
N=B;
cout<<N;
}
Задача 5
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
Входные данные
25
Выходные данные
1 4 9 16 25
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
1) Переменные:
N – число, до которого будут выводиться квадраты (int)
x – текущее число, квадрат которого будет выводиться(int)
2) Первоначальные значения:
3) Тело цикла:
Вывести квадрат x
Увеличить x на 1
4) Условие продолжения цикла:
x*x <= N
5) Результат:
x=1
#include <iostream>
using namespace std;
int main()
{
int x=1, N;
cin >> N;
while (x*x<=N)
{
cout<<x*x<<' ';
x++;
}
}
Список задач для самостоятельного решения
Дано натуральное число N. Определить количество нулей среди всех цифр числа N.
Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.
Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0). Числа, следующие за числом 0, считывать не нужно.
Определите среднее значение всех элементов последовательности, завершающейся числом 0.
Определите количество четных элементов в последовательности, завершающейся числом 0.
Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента.
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней
Дано натуральное число N. Определить , встречается ли в числе N цифра 2.
По данному целому числу N распечатайте четные натуральные числа, не превосходящие N, в порядке возрастания.
Урожайность зерна с 1 гектара составляет x центнеров. Каждый год урожайность повышается на 5%. Через сколько лет урожай удвоится?