Урок №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 ЗАДАЧИ
var m:array [0..14] of integer; i:integer;
function IsPositive(a:integer):boolean;
begin
result:=(a>-1);
end;
procedure work;
var min, max, count:integer;
begin
count:=0;
min:=m[0];
max:=0;
for i:=0 to 14 do begin
if IsPositive(m[i]) then begin
inc(count);
if m[i]>max then max:=m[i];
if m[i]<min then min:=m[i];
end;
end;
writeln('MAX: ', max);
writeln('MIN: ', min);
writeln('Count: ', count);
end;
begin
for i:=0 to 14 do begin
write('n: ');
readln(m[i]);
end;
work;
readln;
end.
Если число 3306(10) в системе исчисления с основанием а заканчивается цифрой 3, то тогда
число 3303 делится на основание системы а.
Отсюда алгоритм поиска. Находим все делители числа 3303.
3303 = 3*1101 = 3*3*367. Число 367 - простое. Поэтому основаниями системы исчисления
могут быть только 3, 9, 367. Основание =3 не подходит, так как по условию число должно заканчиваться на 3 -> основание больше 3. Остаются 9, 367.