Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Пример решения и комментарии ⇐ ПредыдущаяСтр 3 из 3
Задание. По введенному натуральному числу n < 30000 найти значение выражения 2n. Известно, что существует эффективный по количеству выполняемых действий умножения алгоритм возведения произвольного числа в натуральную степень. Однако при его реализации для больших значений степени n придется выполнять операцию умножения “длинного” числа на “длинное”, которая требует порядка L2 умножений, где L – количество цифр в каждом из “длинных” множителей. Второй возможный подход к решению данной задачи – это перевод двоичного числа, состоящего из одной единицы и n нулей (а именно так в двоичной системе выглядит 2n), в десятичную систему счисления методом деления в двоичной системе на 10 = 10102. Но деление в двоичной системе придется организовывать самостоятельно (аналогично алгоритму деления “длинного” числа на “короткое”). Наиболее простым с точки зрения понимания и отладки программы является алгоритм простого последовательного умножения на некоторую степень двойки, являющуюся “коротким” числом. Приведем такое решение задачи: умножение производится, пока это возможно, на 217 (произведение 217 на максимальную цифру 10000-й системы счисления – 9999, еще меньше, чем максимальное число, представимое в целом типе). Затем результат домножается на оставшееся 2k, где k< 17.
Решение на языке Turbo-Pascal: Var s alоng L, n, i, k: integer; Begin readln (n); {вводим значение степени} s [1]: =1; {результат для нулевой степени } L: =1; {длина результата} while n> 16 do {умножаем на 1 shl 17=2^17} begin mult (s, L, 1 shl 17); n: = n-17 end; if n > 0 then {умножаем на оставшуюся степень} mult (s, L, 1 shl n); assign (output, ‘ output.txt’); } rewrite (s[L]); {старший разряд просто печатаем} for i: = L-1 downto l do begin k: = 1000; while s [i]< k do {недостающие цифры заменим 0} begin write (0); k: = k div 10 end; write (s [ i ]); end; Close (Output) End.
Решение на языке С: voidmain () {ALONG s; long L, n, i, k; FILE *f; scanf (“%D”, & n); s [ l ] = l; /*результат для нулевой степени*/ L = l; /*длина результата*/ while (n> 16) /* умножаем на 1< < 17 = 2^17 */ { Mult (s, & L, (long) l < < 17); n- = 17; } if (n> 0) /* умножаем на оставшуюся степень */ Mult (s, & L, (long) l < < n); f = fopen (“output.txt”, “wt”); fprintf (f, “%d”, s[L]); for (i=L-l; i> =l; i--) { k=1000; while (s [i]< k) /*недостающие цифры заменим 0*/ { fprintf (f, “%c”, ‘0’); k/=10; } fprintf (f, “%d”, s[i]); } fclose (f);
КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Какой объем памяти в байтах будет занимать текст данного вопроса? 2. В графическом режиме на экране дисплея пиксель можно отображать одним из 1024 цветов. Сколько бит требуется для описания цвета каждого пикселя, если разрешение экрана составляет 800*600 пикселей? 3. От чего зависят границы диапазона целых чисел, представимых в компьютере с фиксированной запятой? 4. Объясните, как дополнительный код позволяет заменить операцию вычитания операцией сложения. 5. Объясните, что и когда “плавает” в форме представления чисел с плавающей запятой? 6. Перечислите ошибки, возникающие при работе с вещественными числами в конечном числе разрядов. 7. От чего зависят границы диапазона чисел, представимых в том или ином целом типе? 8. Какие ошибки возникают при сложении чисел в ограниченном числе разрядов? Как можно их избежать? 9. Может ли результат умножения двух положительных чисел, представимых в знаковом типе данных, оказаться отрицательным? 10. Назовите области применения битовых операций. 11. Каковы преимущества компьютерного представления чисел с плавающей запятой по сравнению с фиксированной? 12. Почему современные языки программирования поддерживают одновременно несколько вещественных типов данных? 13. Для чего применяется сдвиг при записи порядка нормализованного числа и что такое машинный нуль? 14. Перечислите и объясните все ошибки, которые могут возникнуть при арифметических операциях с нормализованными числами в ограниченном числе разрядов? 15. Как определить, достаточно ли для точного решения задачи стандартных компьютерных типов данных, или вычисления придется организовывать самому, с помощью алгоритмов “длинной” арифметики? 16. Назовите преимущества и недостатки различных способов представления ”длинных“ чисел. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ Основная литература 1. Аляев Ю.А., Кушев В.О., Лебедев В.В. Прикладное программирование: Учеб. метод. пособие для самостоятельной работы: В 2ч. Ч.1: Алгоритмизация и программирование. – Пермь: Высш.шк., 2007.– 235 с. 2. Баула В.Г., Васюкова Н.Д., Тюляева В.В., Уманец П.В. Основы программирования и алгоритмические языки. – М.: Энергоатомиздат, 2007.– 400 с. 3. Гусева А.И. Учитесь программировать: Pascal 7.0: Задачи методы их решения. – М.: Диалог-МИФИ, 2007. – 256 с. 4. Епанешников А., Епанешников В. Программирование в среде Turbo-Pascal 7.0. – М.: Диалог-МИФИ, 2009. – 288 с. 5. Иванов А.Г. Язык программирования Си: Предварительное описание. // Прикл. информатика. – 2008. – Вып. 1. – С. 68 – 113. 6. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си: Задачи по языку Си: Пер. с англ. – М.: Финансы и статистика, 2007. – 279с. 7. Кук Д., Бейз Г. Компьютерная математика. – М.: Наука, 2009.– 216 с. 8. Хопкрофт Д., Ахо А., Ульман Д. Структуры данных и алгоритмы. – М.: Вильямс, 2009. – 384с. 9. Вирт Н. Алгоритмы и структуры данных. – СПб: Невский диалект, 2011. – 272с. Дополнительная литература 1. Мейер Б., Бодуэн К. Методы программирования: В 2 т. Пер./ с фр.Ю.А. Первина; Под ред. А.П. Ершова. – М: Мир, 2002.– 336 с.: ил. 2. Нортон П., Уилтон Р. IBM PC и PS/2: Руководство по программированию: Пер. с англ. – М: Радио и связь, 1994. – 336 с.: ил. 3. Проценко В.С., Чаленко П.И., Сорока Р.А. Техника программирования: Учеб. пособие. – Киев: Выща шк., 2000. – 183 с.: ил. 4. Касаткин Н.В. Информация. Алгоритмы. ЭВМ. – М.: Просвещение, 1991.– 225 с. 5. Фомин С.В. Системы счисления. – М.: Наука, 2007.– 247 с. 6. Фаронов В.В. Турбо-Паскаль: Практика программирования. – М.: Учеб. инж. центр “ МВТУ-ФЕСТО-ДИДАКТИК”, 2003. – 256 с. 7. Хенкок Л., Кригер М. Введение в программирование на языке Си: Пер.с англ. – М.: Радио и связь, 2006. – 192с.
Задания и методические указанияк выполнению курсовой работы по дисциплине «Языки и системы программирования»
Подписано в печать _________. Формат 60´ 84/16. Бумага для множ. аппаратов. Печать плоская. Усл. печ. л. ___. Уч.-изд. л.____. Тираж ____ экз. Заказ № ____. ФГАОУ ВПО «Российский государственный профессионально-педагогический университет». Екатеринбург, ул. Машиностроителей, 11. Ризограф ФГАОУ ВПО РГППУ. Екатеринбург, ул. Машиностроителей, 11.
|