Урок №46 «Урок-практикум. Цикл while» Увага! Під час роботи з комп’ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм.
Середовище виконання : IDLE (Python)
Алгоритм роботи
Всі задачі зберегти в свою папку
Задача 1. Перетворення
Ввести натуральне число n. Змінювати його наступним чином: якщо число парне, то розділимо його на 2, якщо непарне, то додамо 1. Повторювати діє поки не досягнемо значення числа n = 1. Вивести кількість перетворень числа n до отримання 1
(Цикл із розгалуженням)
Алгоритм роботи
Вводимо число n і k
Додаємо цикл While – умова число n не дорівнює 1
Додаємо розгалуження – якщо n є парним, то ділимо його на 2, інакше до n додаємо 1
Додаємо до рахівника k число 1
Виводимо на екран кількість перетворень (число k)
Задача 2.
Розрахувати вартість одного мобільного дзвінка
Кожен вихідний дзвінок тарифікується так: 1 коп за підключення, перша хв розмови = 64 коп, кожна наступна хвилина = 32 коп
Знайти вартість телефонного дзвінка, тривалістю n секунд.
(Вивести суму на екран в копійках)
РОЗВЯЗАТИ 1 І 2 ЗАДАЧУ
Урок №46 «урок-практикум. Цикл while »
Внимание! Во время работы с компьютером соблюдайте правила безопасности и санитарно-гигиенических норм.
Среда Исполнение: IDLE (Python)
алгоритм работы
Все задачи Сохранить в свою папку
Задача 1. Преобразование
Ввести натуральное число n. Изменять его следующим образом: если число парня, то разделим его на 2, если нечетное, то добавим 1. повторять Действует пока не достигнет значения числа n = 1 Вивести Количество Преобразование числа n к Получение 1
(Цикл С разветвлением)
алгоритм работы
Вводимого числа n и k
Добавляем цикл While - условие число n НЕ равен 1
Добавляем разветвления - если n является четным, то деле его на 2, иначе к n добавляем 1
Добавляем к рахивника k число 1
Выводим на экран Количество Преобразование (число k)
Задача 2.
Рассчитать стоимость одного мобильного Звонка
КАЖДЫЙ исходящий звонок тарификуеться так: 1 коп за подключение, первая мин разговора = 64 коп, кожные следующая минута = 32 коп
Найти СТОИМОСТЬ телефонных звонков, продолжительности n секунд.
(Вивести сумму на экран в копейках)
Решить 1 и 2 ЗАДАЧИ
begin
var a:=-1.32;
var b:=1.49;
var h:=0.11;
var y1:=-14.0;
var y2:=17.0;
var k:=0;
var x:=a;
while x<=b do begin
var y:=Tan(x);
if (y>=y1) and (y<=y2) then begin
Writeln('x=',x:5:2,' y=',y:7:4);
Inc(k)
end;
x+=h
end;
Writeln('Найдено значений: ',k)
end.
Результат
x=-1.32 y=-3.9033
x=-1.21 y=-2.6503
x=-1.10 y=-1.9648
x=-0.99 y=-1.5237
x=-0.88 y=-1.2097
x=-0.77 y=-0.9697
x=-0.66 y=-0.7761
x=-0.55 y=-0.6131
x=-0.44 y=-0.4708
x=-0.33 y=-0.3425
x=-0.22 y=-0.2236
x=-0.11 y=-0.1104
x= 0.00 y= 0.0000
x= 0.11 y= 0.1104
x= 0.22 y= 0.2236
x= 0.33 y= 0.3425
x= 0.44 y= 0.4708
x= 0.55 y= 0.6131
x= 0.66 y= 0.7761
x= 0.77 y= 0.9697
x= 0.88 y= 1.2097
x= 0.99 y= 1.5237
x= 1.10 y= 1.9648
x= 1.21 y= 2.6503
x= 1.32 y= 3.9033
x= 1.43 y= 7.0555
Найдено значений: 26
#include <string.h>
#include <algorithm>
using namespace std;
int main() {
int n;
scanf("%d", &n);
bool a[n][n];
memset(a, true, sizeof(a));
int m;
scanf("%d", &m);
for (int k = 0; k < m; ++k) {
int x, y, aa;
scanf("%d%d%d", &x, &y, &aa);
for (int i = x; i < min(x + aa, n + 1); ++i) {
for (int j = y; j < min(y + aa, n + 1); ++j) {
a[i][j] = false;
}
}
}
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (a[i][j]) {
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}